From 16274aef85f66572e05910bbedcfe4ab551583d2 Mon Sep 17 00:00:00 2001 From: bai <1643359946@qq.com> Date: Wed, 24 Jul 2024 03:40:26 +0800 Subject: [PATCH] =?UTF-8?q?2024=E5=B9=B47=E6=9C=8824=E6=97=A5=20=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E5=8A=A8=E6=80=81=E5=AE=BD=E9=AB=98html=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF=EF=BC=8C=E6=96=B0=E5=A2=9E=E5=90=88=E5=B9=B6=E8=A1=8C?= =?UTF-8?q?=EF=BC=8C=E4=BF=AE=E5=A4=8D=E9=83=A8=E5=88=86=E5=9B=BE=E8=A1=A8?= =?UTF-8?q?=E9=97=AE=E9=A2=98=EF=BC=8C=E4=BF=AE=E5=A4=8D=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E7=AD=9B=E9=80=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/BlStuAnswerController.java | 10 +- .../blStuAnswer/mapper/BlStuAnswerMapper.java | 397 +++---- .../mapper/xml/BlStuAnswerMapper.xml | 123 +- .../service/impl/BlStuAnswerServiceImpl.java | 1014 ++++++++--------- .../jeecg/modules/tools/WebDriverUtil.java | 7 + .../jeecg/modules/tools/word/ExportWord.java | 2 + .../jeecg/modules/tools/word/TableMerge.java | 20 + .../modules/tools/word/WordOperator.java | 81 +- .../officetemplates/exp1/student-tjfx.docx | Bin 295964 -> 293679 bytes .../main/resources/web/html/echartsAuto.html | 52 + 10 files changed, 896 insertions(+), 810 deletions(-) create mode 100644 jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/tools/word/TableMerge.java create mode 100644 jeecg-boot/jeecg-module-demo/src/main/resources/web/html/echartsAuto.html diff --git a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blStuAnswer/controller/BlStuAnswerController.java b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blStuAnswer/controller/BlStuAnswerController.java index 4bfeb93..f3b35d9 100644 --- a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blStuAnswer/controller/BlStuAnswerController.java +++ b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blStuAnswer/controller/BlStuAnswerController.java @@ -226,7 +226,7 @@ public class BlStuAnswerController extends JeecgController createWord(@RequestParam(name="id",required=true) String id) throws Exception { + public Result createWord(@RequestParam(name="id",required=true) String id, @RequestParam(name="isDelChildren", defaultValue = "true") boolean isDelChildren) throws Exception { //直接导出附件 WordOperator wo = service.createWordTjfx(id); BlStuInfo blStuInfo = blStuInfoService.getById(id); @@ -238,6 +238,14 @@ public class BlStuAnswerController extends JeecgController { @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> t1_1_1(String id); + List> t1_1_1(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> t1_1_2(String id); + List> t1_1_2(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> t1_1_3(String id); + List> t1_1_3(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> viewBlMajorStatic(String id); + List> viewBlMajorStatic(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> viewBlMajorStatic2(String id); + List> viewBlMajorStatic2(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> i1_1(String id); + List> i1_1(BlStuInfo blStuMain); - String b1_1_1(String id); + String b1_1_1(BlStuInfo blStuMain); - String b1_1_2(String id); + String b1_1_2(BlStuInfo blStuMain); - String b1_1_3(String id); + String b1_1_3(BlStuInfo blStuMain); - String b1_1_4(String id); + String b1_1_4(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> i1_2(String id); + List> i1_2(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> t1_3(String id); + List> t1_3(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> t1_4(String id); + List> t1_4(BlStuInfo blStuMain); - String b1_2_1(String id); + String b1_2_1(BlStuInfo blStuMain); - String b1_2_2(String id); + String b1_2_2(BlStuInfo blStuMain); - String b1_2_3(String id); + String b1_2_3(BlStuInfo blStuMain); - String b1_2_4(String id); + String b1_2_4(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> t1_5(String id); + List> t1_5(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> t1_6(String id); + List> t1_6(BlStuInfo blStuMain); - String b1_2_5(String id); + String b1_2_5(BlStuInfo blStuMain); - String b1_2_6(String id); + String b1_2_6(BlStuInfo blStuMain); - String b1_2_7(String id); + String b1_2_7(BlStuInfo blStuMain); - String b1_2_8(String id); + String b1_2_8(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> t1_7(String id); + List> t1_7(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> t1_8(String id); + List> t1_8(BlStuInfo blStuMain); - String b1_3_1(String id); + String b1_3_1(BlStuInfo blStuMain); - String b1_3_2(String id); + String b1_3_2(BlStuInfo blStuMain); - String b1_3_3(String id); + String b1_3_3(BlStuInfo blStuMain); - String b1_3_4(String id); + String b1_3_4(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> i1_9(String id); + List> i1_9(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> t1_10(String id); + List> t1_10(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> t1_11(String id); + List> t1_11(BlStuInfo blStuMain); - String b1_4_1(String id); + String b1_4_1(BlStuInfo blStuMain); - String b1_4_2(String id); + String b1_4_2(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> i1_12(String id); + List> i1_12(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> i1_13(String id); + List> i1_13(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> t1_14(String id); + List> t1_14(BlStuInfo blStuMain); - String b2_1_1(String id); + String b2_1_1(BlStuInfo blStuMain); - String b2_1_2(String id); + String b2_1_2(BlStuInfo blStuMain); - String b2_1_3(String id); + String b2_1_3(BlStuInfo blStuMain); - String b2_1_4(String id); + String b2_1_4(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> i2_1(String id); + List> i2_1(BlStuInfo blStuMain); - String b2_1_5(String id); + String b2_1_5(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> i2_2(String id); + List> i2_2(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> t2_3(String id); + List> t2_3(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> t2_4(String id); + List> t2_4(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> i2_5(String id); + List> i2_5(BlStuInfo blStuMain); - String b2_1_6(String id); + String b2_1_6(BlStuInfo blStuMain); - String b2_1_7(String id); + String b2_1_7(BlStuInfo blStuMain); - String b2_1_8(String id); + String b2_1_8(BlStuInfo blStuMain); - String b2_1_9(String id); + String b2_1_9(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> i2_6(String id); + List> i2_6(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> t2_7(String id); + List> t2_7(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> i2_8(String id); + List> i2_8(BlStuInfo blStuMain); - String b2_2_1(String id); + String b2_2_1(BlStuInfo blStuMain); - String b2_2_2(String id); + String b2_2_2(BlStuInfo blStuMain); - String b2_2_3(String id); + String b2_2_3(BlStuInfo blStuMain); - String b2_2_4(String id); + String b2_2_4(BlStuInfo blStuMain); - String b2_2_5(String id); + String b2_2_5(BlStuInfo blStuMain); - String b2_2_6(String id); + String b2_2_6(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> i2_9(String id); + List> i2_9(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> t2_10(String id); + List> t2_10(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> t2_11(String id); + List> t2_11(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> i2_12(String id); + List> i2_12(BlStuInfo blStuMain); - String b2_3_1(String id); + String b2_3_1(BlStuInfo blStuMain); - String b2_3_2(String id); + String b2_3_2(BlStuInfo blStuMain); - String b2_3_3(String id); + String b2_3_3(BlStuInfo blStuMain); - String b2_3_4(String id); + String b2_3_4(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> i2_13(String id); + List> i2_13(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> t2_14(String id); + List> t2_14(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> t2_15(String id); + List> t2_15(BlStuInfo blStuMain); - String b2_4_1(String id); + String b2_4_1(BlStuInfo blStuMain); - String b2_4_2(String id); + String b2_4_2(BlStuInfo blStuMain); - String b2_4_3(String id); + String b2_4_3(BlStuInfo blStuMain); - String b2_4_4(String id); + String b2_4_4(BlStuInfo blStuMain); - String b2_4_5(String id); + String b2_4_5(BlStuInfo blStuMain); - String b2_4_6(String id); + String b2_4_6(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> i2_16(String id); + List> i2_16(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> i2_17(String id); + List> i2_17(BlStuInfo blStuMain); - String b2_5_1(String id); + String b2_5_1(BlStuInfo blStuMain); - String b2_5_2(String id); + String b2_5_2(BlStuInfo blStuMain); - String b2_5_3(String id); + String b2_5_3(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> i2_18(String id); + List> i2_18(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> t2_19(String id); + List> t2_19(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> t2_20(String id); + List> t2_20(BlStuInfo blStuMain); - String b2_6_1(String id); + String b2_6_1(BlStuInfo blStuMain); - String b2_6_2(String id); + String b2_6_2(BlStuInfo blStuMain); - String b2_6_3(String id); + String b2_6_3(BlStuInfo blStuMain); - String b2_6_4(String id); + String b2_6_4(BlStuInfo blStuMain); - String b2_6_5(String id); + String b2_6_5(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> i2_21(String id); + List> i2_21(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> i2_22(String id); + List> i2_22(BlStuInfo blStuMain); - String b2_6_6(String id); + String b2_6_6(BlStuInfo blStuMain); - String b2_6_7(String id); + String b2_6_7(BlStuInfo blStuMain); - String b2_6_8(String id); + String b2_6_8(BlStuInfo blStuMain); - String b2_6_9(String id); + String b2_6_9(BlStuInfo blStuMain); - String b2_6_10(String id); + String b2_6_10(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> i2_23(String id); + List> i2_23(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> t2_24(String id); + List> t2_24(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> t2_25(String id); + List> t2_25(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> i2_26(String id); + List> i2_26(BlStuInfo blStuMain); - String b2_7_1(String id); + String b2_7_1(BlStuInfo blStuMain); - String b2_7_2(String id); + String b2_7_2(BlStuInfo blStuMain); - String b2_7_3(String id); + String b2_7_3(BlStuInfo blStuMain); - String b2_7_4(String id); + String b2_7_4(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> i2_27(String id); + List> i2_27(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> t2_28(String id); + List> t2_28(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> i2_29(String id); + List> i2_29(BlStuInfo blStuMain); - String b2_8_1(String id); + String b2_8_1(BlStuInfo blStuMain); - String b2_8_2(String id); + String b2_8_2(BlStuInfo blStuMain); - String b2_8_3(String id); + String b2_8_3(BlStuInfo blStuMain); - String b2_8_4(String id); + String b2_8_4(BlStuInfo blStuMain); - String b2_8_5(String id); + String b2_8_5(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> i2_30(String id); + List> i2_30(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> t2_31(String id); + List> t2_31(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> t2_32(String id); + List> t2_32(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> i2_33(String id); + List> i2_33(BlStuInfo blStuMain); - String b2_9_1(String id); + String b2_9_1(BlStuInfo blStuMain); - String b2_9_2(String id); + String b2_9_2(BlStuInfo blStuMain); - String b2_9_3(String id); + String b2_9_3(BlStuInfo blStuMain); - String b2_9_4(String id); + String b2_9_4(BlStuInfo blStuMain); - String b2_9_5(String id); + String b2_9_5(BlStuInfo blStuMain); - String b2_9_6(String id); + String b2_9_6(BlStuInfo blStuMain); - String b2_9_7(String id); + String b2_9_7(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> i2_34(String id); + List> i2_34(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> t2_35(String id); + List> t2_35(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> t2_36(String id); + List> t2_36(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> i3_1(String id); + List> i3_1(BlStuInfo blStuMain); - String b3_1_1(String id); + String b3_1_1(BlStuInfo blStuMain); - String b3_1_2(String id); + String b3_1_2(BlStuInfo blStuMain); - String b3_1_3(String id); + String b3_1_3(BlStuInfo blStuMain); - String b3_1_4(String id); + String b3_1_4(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> i3_2(String id); + List> i3_2(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> t3_3(String id); + List> t3_3(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> t3_4(String id); + List> t3_4(BlStuInfo blStuMain); - String b3_2_1(String id); + String b3_2_1(BlStuInfo blStuMain); - String b3_2_2(String id); + String b3_2_2(BlStuInfo blStuMain); - String b3_2_3(String id); + String b3_2_3(BlStuInfo blStuMain); - String b3_2_4(String id); + String b3_2_4(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> i3_5(String id); + List> i3_5(BlStuInfo blStuMain); - String b3_2_5(String id); + String b3_2_5(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> i3_6(String id); + List> i3_6(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> t3_7(String id); + List> t3_7(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> t3_8(String id); + List> t3_8(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> i3_9(String id); + List> i3_9(BlStuInfo blStuMain); - String b3_3_1(String id); + String b3_3_1(BlStuInfo blStuMain); - String b3_3_2(String id); + String b3_3_2(BlStuInfo blStuMain); - String b3_3_3(String id); + String b3_3_3(BlStuInfo blStuMain); - String b3_3_4(String id); + String b3_3_4(BlStuInfo blStuMain); - String b3_3_5(String id); + String b3_3_5(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> i3_10(String id); + List> i3_10(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> t3_11(String id); + List> t3_11(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> t3_12(String id); + List> t3_12(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> i4_1(String id); + List> i4_1(BlStuInfo blStuMain); - String b4_1_1(String id); + String b4_1_1(BlStuInfo blStuMain); - String b4_1_2(String id); + String b4_1_2(BlStuInfo blStuMain); - String b4_1_3(String id); + String b4_1_3(BlStuInfo blStuMain); - String b4_1_4(String id); + String b4_1_4(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> i4_2(String id); + List> i4_2(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> t4_3(String id); + List> t4_3(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> t4_4(String id); + List> t4_4(BlStuInfo blStuMain); - String b4_2_1(String id); + String b4_2_1(BlStuInfo blStuMain); - String b4_2_2(String id); + String b4_2_2(BlStuInfo blStuMain); - String b4_2_3(String id); + String b4_2_3(BlStuInfo blStuMain); - String b4_2_4(String id); + String b4_2_4(BlStuInfo blStuMain); - String b4_2_5(String id); + String b4_2_5(BlStuInfo blStuMain); - String b4_2_6(String id); + String b4_2_6(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> i4_5(String id); + List> i4_5(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> t4_6(String id); + List> t4_6(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> t4_7(String id); + List> t4_7(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> i4_8(String id); + List> i4_8(BlStuInfo blStuMain); - String b4_3_1(String id); + String b4_3_1(BlStuInfo blStuMain); - String b4_3_2(String id); + String b4_3_2(BlStuInfo blStuMain); - String b4_3_3(String id); + String b4_3_3(BlStuInfo blStuMain); - String b4_3_4(String id); + String b4_3_4(BlStuInfo blStuMain); - String b4_3_5(String id); + String b4_3_5(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> i4_9(String id); + List> i4_9(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> t4_10(String id); + List> t4_10(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> t4_11(String id); + List> t4_11(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> i4_12(String id); + List> i4_12(BlStuInfo blStuMain); - String b4_4_1(String id); + String b4_4_1(BlStuInfo blStuMain); - String b4_4_2(String id); + String b4_4_2(BlStuInfo blStuMain); - String b4_4_3(String id); + String b4_4_3(BlStuInfo blStuMain); - String b4_4_4(String id); + String b4_4_4(BlStuInfo blStuMain); - String b4_4_5(String id); + String b4_4_5(BlStuInfo blStuMain); - String b4_4_6(String id); + String b4_4_6(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> i4_13(String id); + List> i4_13(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> t4_14(String id); + List> t4_14(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> t4_15(String id); + List> t4_15(BlStuInfo blStuMain); - String b5_1_1(String id); + String b5_1_1(BlStuInfo blStuMain); - String b5_1_2(String id); + String b5_1_2(BlStuInfo blStuMain); - String b5_1_3(String id); + String b5_1_3(BlStuInfo blStuMain); - String b5_1_4(String id); + String b5_1_4(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> i5_1(String id); + List> i5_1(BlStuInfo blStuMain); - String b5_1_5(String id); + String b5_1_5(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> i5_2(String id); + List> i5_2(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> t5_3(String id); + List> t5_3(BlStuInfo blStuMain); @InterceptorIgnore(tenantLine = "true") @MapKey("key") - List> t5_4(String id); + List> t5_4(BlStuInfo blStuMain); } diff --git a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blStuAnswer/mapper/xml/BlStuAnswerMapper.xml b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blStuAnswer/mapper/xml/BlStuAnswerMapper.xml index ea0ee14..01cf091 100644 --- a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blStuAnswer/mapper/xml/BlStuAnswerMapper.xml +++ b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blStuAnswer/mapper/xml/BlStuAnswerMapper.xml @@ -61,7 +61,7 @@ (select count('x') as yb_cnt from bl_stu_answer where main_id = #{id} and PRE_CLASS_PREVIEW = '一般')c, (select count('x') as bjb_cnt from bl_stu_answer where main_id = #{id} and PRE_CLASS_PREVIEW = '比较不符合')d, (select count('x') as fcb_cnt from bl_stu_answer where main_id = #{id} and PRE_CLASS_PREVIEW = '非常不符合')e, - (select count('x') as tot_cnt from bl_stu_answer)f + (select count('x') as tot_cnt from bl_stu_answer where main_id = #{id})f union all select '课堂上能跟上老师的讲解,主动提问或参与讨论,每节课学有所获' as 'key', round(round(a.fc_cnt/f.tot_cnt,2)*100) as '非常符合', @@ -74,7 +74,7 @@ (select count('x') as yb_cnt from bl_stu_answer where main_id = #{id} and IN_CLASS_QUESTIONS = '一般')c, (select count('x') as bjb_cnt from bl_stu_answer where main_id = #{id} and IN_CLASS_QUESTIONS = '比较不符合')d, (select count('x') as fcb_cnt from bl_stu_answer where main_id = #{id} and IN_CLASS_QUESTIONS = '非常不符合')e, - (select count('x') as tot_cnt from bl_stu_answer)f + (select count('x') as tot_cnt from bl_stu_answer where main_id = #{id})f union all select '课后复习笔记及总结课堂教学相关知识' as 'key', round(round(a.fc_cnt/f.tot_cnt,2)*100) as '非常符合', @@ -87,7 +87,7 @@ (select count('x') as yb_cnt from bl_stu_answer where main_id = #{id} and AFTER_CLASS_SUMMARY = '一般')c, (select count('x') as bjb_cnt from bl_stu_answer where main_id = #{id} and AFTER_CLASS_SUMMARY = '比较不符合')d, (select count('x') as fcb_cnt from bl_stu_answer where main_id = #{id} and AFTER_CLASS_SUMMARY = '非常不符合')e, - (select count('x') as tot_cnt from bl_stu_answer)f + (select count('x') as tot_cnt from bl_stu_answer where main_id = #{id})f union all select '除了阅读教材,还延伸阅读教师推荐的其他相关书目' as 'key', round(round(a.fc_cnt/f.tot_cnt,2)*100) as '非常符合', @@ -100,7 +100,7 @@ (select count('x') as yb_cnt from bl_stu_answer where main_id = #{id} and AFTER_CLASS_READ = '一般')c, (select count('x') as bjb_cnt from bl_stu_answer where main_id = #{id} and AFTER_CLASS_READ = '比较不符合')d, (select count('x') as fcb_cnt from bl_stu_answer where main_id = #{id} and AFTER_CLASS_READ = '非常不符合')e, - (select count('x') as tot_cnt from bl_stu_answer)f + (select count('x') as tot_cnt from bl_stu_answer where main_id = #{id})f select z.major as 'key',round(round(z.z_cnt/t.tot_cnt,2)*100) as '01',round(round(y.y_cnt/t.tot_cnt,2)*100) as '02',round(round(x.x_cnt/t.tot_cnt,2)*100) as '03',round(round(n.n_cnt/t.tot_cnt,2)*100) as '04' from - (select major,count('x') as z_cnt from bl_stu_answer where main_id = #{id} and EXCHANGE_FREQ = '每周至少一次' GROUP BY major)z, - (select major,count('x') as y_cnt from bl_stu_answer where main_id = #{id} and EXCHANGE_FREQ = '每月至少一次' GROUP BY major)y, - (select major,count('x') as x_cnt from bl_stu_answer where main_id = #{id} and EXCHANGE_FREQ = '每学期至少一次' GROUP BY major)x, - (select major,count('x') as n_cnt from bl_stu_answer where main_id = #{id} and EXCHANGE_FREQ = '每年至少一次' GROUP BY major)n, - (select major,count('x') as tot_cnt from bl_stu_answer where main_id = #{id} GROUP BY major)t + (select major,count('x') as z_cnt from bl_stu_answer where main_id = #{id} and EXCHANGE_FREQ = '每周至少一次' GROUP BY major HAVING count(*) > #{minNum})z, + (select major,count('x') as y_cnt from bl_stu_answer where main_id = #{id} and EXCHANGE_FREQ = '每月至少一次' GROUP BY major HAVING count(*) > #{minNum})y, + (select major,count('x') as x_cnt from bl_stu_answer where main_id = #{id} and EXCHANGE_FREQ = '每学期至少一次' GROUP BY major HAVING count(*) > #{minNum})x, + (select major,count('x') as n_cnt from bl_stu_answer where main_id = #{id} and EXCHANGE_FREQ = '每年至少一次' GROUP BY major HAVING count(*) > #{minNum})n, + (select major,count('x') as tot_cnt from bl_stu_answer where main_id = #{id} GROUP BY major HAVING count(*) > #{minNum})t where z.major = y.major and z.major = x.major and z.major = n.major and z.major = t.major GROUP BY z.major order by CONVERT(z.major USING gbk) COLLATE gbk_chinese_ci - select a.MAJOR as 'key',a.d1 as '01',b.d2 as '02',c.d3 as '03',d.d4 as '04',e.d5 as '05' from - (select major,round(avg(ACTISATI_SOCIETY2)) as d1 from bl_stu_answer where main_id = #{id} and ACTISATI_SOCIETY2 + 0 > 0 GROUP BY MAJOR)a, - (select major,round(avg(ACTISATI_CULTURE2)) as d2 from bl_stu_answer where main_id = #{id} and ACTISATI_CULTURE2 + 0 > 0 GROUP BY MAJOR)b, - (select major,round(avg(ACTISATI_INNO2)) as d3 from bl_stu_answer where main_id = #{id} and ACTISATI_INNO2 + 0 > 0 GROUP BY MAJOR)c, - (select major,round(avg(ACTISATI_GLOBAL2)) as d4 from bl_stu_answer where main_id = #{id} and ACTISATI_GLOBAL2 + 0 > 0 GROUP BY MAJOR)d, - (select major,round(avg(ACTISATI_INTERN2)) as d5 from bl_stu_answer where main_id = #{id} and ACTISATI_INTERN2 + 0 > 0 GROUP BY MAJOR)e + (select major,round(avg(ACTISATI_SOCIETY2)) as d1 from bl_stu_answer where main_id = #{id} and ACTISATI_SOCIETY2 + 0 > 0 GROUP BY MAJOR HAVING count(*) > #{minNum})a, + (select major,round(avg(ACTISATI_CULTURE2)) as d2 from bl_stu_answer where main_id = #{id} and ACTISATI_CULTURE2 + 0 > 0 GROUP BY MAJOR HAVING count(*) > #{minNum})b, + (select major,round(avg(ACTISATI_INNO2)) as d3 from bl_stu_answer where main_id = #{id} and ACTISATI_INNO2 + 0 > 0 GROUP BY MAJOR HAVING count(*) > #{minNum})c, + (select major,round(avg(ACTISATI_GLOBAL2)) as d4 from bl_stu_answer where main_id = #{id} and ACTISATI_GLOBAL2 + 0 > 0 GROUP BY MAJOR HAVING count(*) > #{minNum})d, + (select major,round(avg(ACTISATI_INTERN2)) as d5 from bl_stu_answer where main_id = #{id} and ACTISATI_INTERN2 + 0 > 0 GROUP BY MAJOR HAVING count(*) > #{minNum})e where a.major = b.MAJOR and a.major = c.MAJOR and a.major = d.MAJOR @@ -1465,7 +1486,10 @@ round(sum(ABILITY_COOPERATE2)/count('x'),2) as '03', round(sum(ABILITY_COMMUNICATE2)/count('x'),2) as '04', round(sum(ABILITY_PLAN2)/count('x'),2) as '05' - from bl_stu_answer where main_id = #{id} GROUP BY major order by CONVERT(major USING gbk) COLLATE gbk_chinese_ci + from bl_stu_answer where main_id = #{id} + GROUP BY major + HAVING count(*) > #{minNum} + order by CONVERT(major USING gbk) COLLATE gbk_chinese_ci select concat(round(round(a.fc_cnt/b.tot_cnt,2)*100)) from - (select count('x') as fc_cnt from bl_stu_answer where main_id = #{id} and TEACHERSATI_ZONGTI = '比较不满意')a, + (select count('x') as fc_cnt from bl_stu_answer where main_id = #{id} and TEACHERSATI_ZONGTI = '一般')a, (select count('x') as tot_cnt from bl_stu_answer where main_id = #{id})b @@ -1840,7 +1870,10 @@ \ No newline at end of file diff --git a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blStuAnswer/service/impl/BlStuAnswerServiceImpl.java b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blStuAnswer/service/impl/BlStuAnswerServiceImpl.java index 375f086..e78091c 100644 --- a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blStuAnswer/service/impl/BlStuAnswerServiceImpl.java +++ b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/demo/blStuAnswer/service/impl/BlStuAnswerServiceImpl.java @@ -18,6 +18,7 @@ import org.jeecg.modules.demo.blStuInfo.entity.BlStuInfo; import org.jeecg.modules.demo.blStuInfo.mapper.BlStuInfoMapper; import org.jeecg.modules.tools.WebDriverUtil; import org.jeecg.modules.tools.word.ExportWord; +import org.jeecg.modules.tools.word.TableMerge; import org.jeecg.modules.tools.word.WordOperator; import org.springframework.stereotype.Service; @@ -60,7 +61,7 @@ public class BlStuAnswerServiceImpl extends ServiceImpl threadService = ThreadUtil.newCompletionService(Executors.newFixedThreadPool(100)); List> calls = Lists.newArrayList(); + List allMergeList = Lists.newArrayList(); calls.add(() -> { - t1_1(wo, result, id); + var mergeList = t1_1(wo, result, blStuMain); + allMergeList.addAll(mergeList); return true; }); calls.add(() -> { - i1_1(wo, result, id); + i1_1(wo, result, blStuMain); return true; }); calls.add(() -> { - b1_1(wo, result, id); + b1_1(wo, result, blStuMain); return true; }); calls.add(() -> { - i1_2(wo, result, id); + i1_2(wo, result, blStuMain); return true; }); calls.add(() -> { - t1_3(wo, result, id); + t1_3(wo, result, blStuMain); return true; }); calls.add(() -> { - t1_4(wo, result, id); + t1_4(wo, result, blStuMain); return true; }); calls.add(() -> { - b1_2(wo, result, id); + b1_2(wo, result, blStuMain); return true; }); calls.add(() -> { - t1_5(wo, result, id); + t1_5(wo, result, blStuMain); return true; }); calls.add(() -> { - t1_6(wo, result, id); + t1_6(wo, result, blStuMain); return true; }); calls.add(() -> { - b1_2_5(wo, result, id); + b1_2_5(wo, result, blStuMain); return true; }); calls.add(() -> { - t1_7(wo, result, id); + t1_7(wo, result, blStuMain); return true; }); calls.add(() -> { - t1_8(wo, result, id); + t1_8(wo, result, blStuMain); return true; }); calls.add(() -> { - b1_3(wo, result, id); + b1_3(wo, result, blStuMain); return true; }); calls.add(() -> { - i1_9(wo, result, id); + i1_9(wo, result, blStuMain); return true; }); calls.add(() -> { - t1_10(wo, result, id); + t1_10(wo, result, blStuMain); return true; }); calls.add(() -> { - t1_11(wo, result, id); + t1_11(wo, result, blStuMain); return true; }); calls.add(() -> { - b1_4(wo, result, id); + b1_4(wo, result, blStuMain); return true; }); calls.add(() -> { - i1_12(wo, result, id); + i1_12(wo, result, blStuMain); return true; }); calls.add(() -> { - i1_13(wo, result, id); + i1_13(wo, result, blStuMain); return true; }); calls.add(() -> { - t1_14(wo, result, id); + t1_14(wo, result, blStuMain); return true; }); calls.add(() -> { - b2_1(wo, result, id); + b2_1(wo, result, blStuMain); return true; }); calls.add(() -> { - i2_1(wo, result, id); + i2_1(wo, result, blStuMain); return true; }); calls.add(() -> { - b2_1_5(wo, result, id); + b2_1_5(wo, result, blStuMain); return true; }); calls.add(() -> { - i2_2(wo, result, id); + i2_2(wo, result, blStuMain); return true; }); calls.add(() -> { - t2_3(wo, result, id); + t2_3(wo, result, blStuMain); return true; }); calls.add(() -> { - t2_4(wo, result, id); + t2_4(wo, result, blStuMain); return true; }); calls.add(() -> { - i2_5(wo, result, id); + i2_5(wo, result, blStuMain); return true; }); calls.add(() -> { - b2_1_6(wo, result, id); + b2_1_6(wo, result, blStuMain); return true; }); calls.add(() -> { - i2_6(wo, result, id); + i2_6(wo, result, blStuMain); return true; }); calls.add(() -> { - t2_7(wo, result, id); + t2_7(wo, result, blStuMain); return true; }); calls.add(() -> { - i2_8(wo, result, id); + i2_8(wo, result, blStuMain); return true; }); calls.add(() -> { - b2_2_1(wo, result, id); + b2_2_1(wo, result, blStuMain); return true; }); calls.add(() -> { - i2_9(wo, result, id); + i2_9(wo, result, blStuMain); return true; }); calls.add(() -> { - t2_10(wo, result, id); + t2_10(wo, result, blStuMain); return true; }); calls.add(() -> { - t2_11(wo, result, id); + t2_11(wo, result, blStuMain); return true; }); calls.add(() -> { - i2_12(wo, result, id); + i2_12(wo, result, blStuMain); return true; }); calls.add(() -> { - b2_3_1(wo, result, id); + b2_3_1(wo, result, blStuMain); return true; }); calls.add(() -> { - i2_13(wo, result, id); + i2_13(wo, result, blStuMain); return true; }); calls.add(() -> { - t2_14(wo, result, id); + t2_14(wo, result, blStuMain); return true; }); calls.add(() -> { - t2_15(wo, result, id); + t2_15(wo, result, blStuMain); return true; }); calls.add(() -> { - b2_4_1(wo, result, id); + b2_4_1(wo, result, blStuMain); return true; }); calls.add(() -> { - i2_16(wo, result, id); + i2_16(wo, result, blStuMain); return true; }); calls.add(() -> { - i2_17(wo, result, id); + i2_17(wo, result, blStuMain); return true; }); calls.add(() -> { - b2_5_1(wo, result, id); + b2_5_1(wo, result, blStuMain); return true; }); calls.add(() -> { - i2_18(wo, result, id); + i2_18(wo, result, blStuMain); return true; }); calls.add(() -> { - t2_19(wo, result, id); + t2_19(wo, result, blStuMain); return true; }); calls.add(() -> { - t2_20(wo, result, id); + t2_20(wo, result, blStuMain); return true; }); calls.add(() -> { - b2_6_1(wo, result, id); + b2_6_1(wo, result, blStuMain); return true; }); calls.add(() -> { - i2_21(wo, result, id); + i2_21(wo, result, blStuMain); return true; }); calls.add(() -> { - i2_22(wo, result, id); + i2_22(wo, result, blStuMain); return true; }); calls.add(() -> { - b2_6_6(wo, result, id); + b2_6_6(wo, result, blStuMain); return true; }); calls.add(() -> { - i2_23(wo, result, id); + i2_23(wo, result, blStuMain); return true; }); calls.add(() -> { - t2_24(wo, result, id); + t2_24(wo, result, blStuMain); return true; }); calls.add(() -> { - t2_25(wo, result, id); + t2_25(wo, result, blStuMain); return true; }); calls.add(() -> { - i2_26(wo, result, id); + i2_26(wo, result, blStuMain); return true; }); calls.add(() -> { - b2_7_1(wo, result, id); + b2_7_1(wo, result, blStuMain); return true; }); calls.add(() -> { - i2_27(wo, result, id); + i2_27(wo, result, blStuMain); return true; }); calls.add(() -> { - t2_28(wo, result, id); + t2_28(wo, result, blStuMain); return true; }); calls.add(() -> { - i2_29(wo, result, id); + i2_29(wo, result, blStuMain); return true; }); calls.add(() -> { - b2_8_1(wo, result, id); + b2_8_1(wo, result, blStuMain); return true; }); calls.add(() -> { - i2_30(wo, result, id); + i2_30(wo, result, blStuMain); return true; }); calls.add(() -> { - t2_31(wo, result, id); + t2_31(wo, result, blStuMain); return true; }); calls.add(() -> { - t2_32(wo, result, id); + t2_32(wo, result, blStuMain); return true; }); calls.add(() -> { - i2_33(wo, result, id); + i2_33(wo, result, blStuMain); return true; }); calls.add(() -> { - b2_9_1(wo, result, id); + b2_9_1(wo, result, blStuMain); return true; }); calls.add(() -> { - i2_34(wo, result, id); + i2_34(wo, result, blStuMain); return true; }); calls.add(() -> { - t2_35(wo, result, id); + t2_35(wo, result, blStuMain); return true; }); calls.add(() -> { - t2_36(wo, result, id); + t2_36(wo, result, blStuMain); return true; }); calls.add(() -> { - i3_1(wo, result, id); + i3_1(wo, result, blStuMain); return true; }); calls.add(() -> { - b3_1_1(wo, result, id); + b3_1_1(wo, result, blStuMain); return true; }); calls.add(() -> { - i3_2(wo, result, id); + i3_2(wo, result, blStuMain); return true; }); calls.add(() -> { - t3_3(wo, result, id); + t3_3(wo, result, blStuMain); return true; }); calls.add(() -> { - t3_4(wo, result, id); + t3_4(wo, result, blStuMain); return true; }); calls.add(() -> { - b3_2_1(wo, result, id); + b3_2_1(wo, result, blStuMain); return true; }); calls.add(() -> { - i3_5(wo, result, id); + i3_5(wo, result, blStuMain); return true; }); calls.add(() -> { - b3_2_5(wo, result, id); + b3_2_5(wo, result, blStuMain); return true; }); calls.add(() -> { - i3_6(wo, result, id); + i3_6(wo, result, blStuMain); return true; }); calls.add(() -> { - t3_7(wo, result, id); + t3_7(wo, result, blStuMain); return true; }); calls.add(() -> { - t3_8(wo, result, id); + t3_8(wo, result, blStuMain); return true; }); calls.add(() -> { - i3_9(wo, result, id); + i3_9(wo, result, blStuMain); return true; }); calls.add(() -> { - b3_3_1(wo, result, id); + b3_3_1(wo, result, blStuMain); return true; }); calls.add(() -> { - i3_10(wo, result, id); + i3_10(wo, result, blStuMain); return true; }); calls.add(() -> { - t3_11(wo, result, id); + t3_11(wo, result, blStuMain); return true; }); calls.add(() -> { - t3_12(wo, result, id); + t3_12(wo, result, blStuMain); return true; }); calls.add(() -> { - i4_1(wo, result, id); + i4_1(wo, result, blStuMain); return true; }); calls.add(() -> { - b4_1_1(wo, result, id); + b4_1_1(wo, result, blStuMain); return true; }); calls.add(() -> { - i4_2(wo, result, id); + i4_2(wo, result, blStuMain); return true; }); calls.add(() -> { - t4_3(wo, result, id); + t4_3(wo, result, blStuMain); return true; }); calls.add(() -> { - t4_4(wo, result, id); + t4_4(wo, result, blStuMain); return true; }); calls.add(() -> { - b4_2_1(wo, result, id); + b4_2_1(wo, result, blStuMain); return true; }); calls.add(() -> { - i4_5(wo, result, id); + i4_5(wo, result, blStuMain); return true; }); calls.add(() -> { - t4_6(wo, result, id); + t4_6(wo, result, blStuMain); return true; }); calls.add(() -> { - t4_7(wo, result, id); + t4_7(wo, result, blStuMain); return true; }); calls.add(() -> { - i4_8(wo, result, id); + i4_8(wo, result, blStuMain); return true; }); calls.add(() -> { - b4_3_1(wo, result, id); + b4_3_1(wo, result, blStuMain); return true; }); calls.add(() -> { - i4_9(wo, result, id); + i4_9(wo, result, blStuMain); return true; }); calls.add(() -> { - t4_10(wo, result, id); + t4_10(wo, result, blStuMain); return true; }); calls.add(() -> { - t4_11(wo, result, id); + t4_11(wo, result, blStuMain); return true; }); calls.add(() -> { - i4_12(wo, result, id); + i4_12(wo, result, blStuMain); return true; }); calls.add(() -> { - b4_4_1(wo, result, id); + b4_4_1(wo, result, blStuMain); return true; }); calls.add(() -> { - i4_13(wo, result, id); + i4_13(wo, result, blStuMain); return true; }); calls.add(() -> { - t4_14(wo, result, id); + t4_14(wo, result, blStuMain); return true; }); calls.add(() -> { - t4_15(wo, result, id); + t4_15(wo, result, blStuMain); return true; }); calls.add(() -> { - b5_1_1(wo, result, id); + b5_1_1(wo, result, blStuMain); return true; }); calls.add(() -> { - i5_1(wo, result, id); + i5_1(wo, result, blStuMain); return true; }); calls.add(() -> { - b5_1_5(wo, result, id); + b5_1_5(wo, result, blStuMain); return true; }); calls.add(() -> { - i5_2(wo, result, id); + i5_2(wo, result, blStuMain); return true; }); calls.add(() -> { - t5_3(wo, result, id); + t5_3(wo, result, blStuMain); return true; }); calls.add(() -> { - t5_4(wo, result, id); + t5_4(wo, result, blStuMain); return true; }); @@ -537,15 +540,20 @@ public class BlStuAnswerServiceImpl extends ServiceImpl result, String id) { - var list1 = baseMapper.t1_1_1(id); - //t1_1_1~t1_2_2 - var list2 = baseMapper.t1_1_2(id); - //t1_3_1~t1_6_2 - var list3 = baseMapper.t1_1_3(id); - //t1_10_1~t1_91_2 - var list4 = baseMapper.viewBlMajorStatic(id); - //t1_10_1~t91_2 - //套list - //view_bl_major_static - //list1.forEach(x -> ); - Map keyMap = MapUtil.of(new String[][] { - {"男", "t1_1_"}, - {"女", "t1_2_"}, - {"大一", "t1_3_"}, - {"大二", "t1_4_"}, - {"大三", "t1_5_"}, - {"大四", "t1_6_"}, - {"中共党员(含预备党员)", "t1_7_"}, - {"共青团员", "t1_8_"}, - {"群众", "t1_9_"}, - {"会计学院-会计学","t1_10_"}, - {"会计学院-会计学(ACCA)","t1_11_"}, - {"会计学院-会计学(CIMA)","t1_12_"}, - {"会计学院-财务管理","t1_13_"}, - {"会计学院-会计学(智能会计)","t1_14_"}, - {"会计学院 小计-","t1_15_"}, - {"虚拟现实(VR)现代产业学院-软件工程(VR软件开发)","t1_16_"}, - {"虚拟现实(VR)现代产业学院-虚拟现实技术","t1_17_"}, - {"虚拟现实(VR)现代产业学院-数字媒体艺术(VR艺术设计)","t1_18_"}, - {"虚拟现实(VR)现代产业学院 小计-","t1_19_"}, - {"软件与物联网工程学院-软件工程","t1_20_"}, - {"软件与物联网工程学院-物联网工程","t1_21_"}, - {"软件与物联网工程学院-软件工程(中外合作办学)","t1_22_"}, - {"软件与物联网工程学院 小计-","t1_23_"}, - {"工商管理学院-工商管理","t1_24_"}, - {"工商管理学院-人力资源管理","t1_25_"}, - {"工商管理学院-市场营销","t1_26_"}, - {"工商管理学院-市场营销(国际营销)","t1_27_"}, - {"工商管理学院-物流管理","t1_28_"}, - {"工商管理学院-旅游管理","t1_29_"}, - {"工商管理学院 小计-","t1_30_"}, - {"信息管理学院-信息与计算科学","t1_31_"}, - {"信息管理学院-工程管理","t1_32_"}, - {"信息管理学院-计算机科学与技术","t1_33_"}, - {"信息管理学院-数据科学与大数据技术","t1_34_"}, - {"信息管理学院-房地产开发与管理","t1_35_"}, - {"信息管理学院-信息管理与信息系统","t1_36_"}, - {"信息管理学院-管理科学","t1_37_"}, - {"信息管理学院-网络空间安全","t1_38_"}, - {"信息管理学院 小计-","t1_39_"}, - {"金融学院-金融科技","t1_40_"}, - {"金融学院-金融学","t1_41_"}, - {"金融学院-金融学(FRM)","t1_42_"}, - {"金融学院-金融工程","t1_43_"}, - {"金融学院-保险学","t1_44_"}, - {"金融学院 小计-","t1_45_"}, - {"法学院-法学","t1_46_"}, - {"法学院-法学(数据法学)","t1_47_"}, - {"法学院-法学(法务会计)","t1_48_"}, - {"法学院 小计-","t1_49_"}, - {"国际学院-金融学(CFA-注册金融分析师)","t1_50_"}, - {"国际学院-会计学(国际会计)","t1_51_"}, - {"国际学院-金融学(国际投资与金融)","t1_52_"}, - {"国际学院-国际经济与贸易(CITF-特许国际金融师)","t1_53_"}, - {"国际学院 小计-","t1_54_"}, - {"财税与公共管理学院-税收学","t1_55_"}, - {"财税与公共管理学院-土地资源管理","t1_56_"}, - {"财税与公共管理学院-财政学","t1_57_"}, - {"财税与公共管理学院-财政学(智慧财税)","t1_58_"}, - {"财税与公共管理学院-行政管理","t1_59_"}, - {"财税与公共管理学院-劳动与社会保障","t1_60_"}, - {"财税与公共管理学院 小计-","t1_61_"}, - {"国际经贸学院-国际商务","t1_62_"}, - {"国际经贸学院-电子商务","t1_63_"}, - {"国际经贸学院-国际经济与贸易","t1_64_"}, - {"国际经贸学院 小计-","t1_65_"}, - {"统计与数据科学学院-应用统计学","t1_66_"}, - {"统计与数据科学学院-经济统计学","t1_67_"}, - {"统计与数据科学学院-精算学","t1_68_"}, - {"统计与数据科学学院 小计-","t1_69_"}, - {"经济学院-经济学","t1_70_"}, - {"经济学院-国民经济管理","t1_71_"}, - {"经济学院-数字经济(中外合作办学)","t1_72_"}, - {"经济学院 小计-","t1_73_"}, - {"艺术学院-环境设计","t1_74_"}, - {"艺术学院-产品设计","t1_75_"}, - {"艺术学院-数字媒体艺术","t1_76_"}, - {"艺术学院-舞蹈表演","t1_77_"}, - {"艺术学院-音乐学","t1_78_"}, - {"艺术学院 小计-","t1_79_"}, - {"人文学院-汉语国际教育","t1_80_"}, - {"人文学院-新闻学","t1_81_"}, - {"人文学院-社会工作","t1_82_"}, - {"人文学院 小计-","t1_83_"}, - {"应用经济学院(数字经济学院)-数字经济","t1_84_"}, - {"应用经济学院(数字经济学院) 小计-","t1_85_"}, - {"外国语学院-商务英语","t1_86_"}, - {"外国语学院-日语","t1_87_"}, - {"外国语学院 小计-","t1_88_"}, - {"体育学院-社会体育指导与管理","t1_89_"}, - {"体育学院-运动训练","t1_90_"}, - {"体育学院 小计-","t1_91_"}, - }); - Consumer> fn = x -> { - var key = keyMap.get(x.get(KEY)); - result.put(key + "1", getMapStr(x.get(K01))); - result.put(key + "2", getMapStr(x.get(K02))); - }; - list1.forEach(fn); - list2.forEach(fn); - list3.forEach(fn); - list4.forEach(x -> { - var key = keyMap.get(x.get(KEY)); - result.put(key + "1", getMapStr(x.get(K03))); - result.put(key + "2", getMapStr(x.get(K04))); - }); -// result.put("t1_1_1", "默认值"); -// result.put("t1_1_2", "默认值"); -// //~ -// result.put("t1_91_1", "默认值"); -// result.put("t1_91_2", "默认值"); - //wo.insert2Table(0,1,) - } - - public void t1_1(WordOperator wo, Map result, String id) { - var list1 = baseMapper.t1_1_1(id); + public List t1_1(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list1 = baseMapper.t1_1_1(blStuMain); //t1_1_1~t1_2_2 - var list2 = baseMapper.t1_1_2(id); + var list2 = baseMapper.t1_1_2(blStuMain); //t1_3_1~t1_6_2 - var list3 = baseMapper.t1_1_3(id); + var list3 = baseMapper.t1_1_3(blStuMain); //t1_10_1~t1_91_2 - var list4 = baseMapper.viewBlMajorStatic2(id); + var list4 = baseMapper.viewBlMajorStatic2(blStuMain); //t1_10_1~t91_2 //套list //view_bl_major_static @@ -1142,6 +1033,12 @@ public class BlStuAnswerServiceImpl extends ServiceImpl> table = Lists.newArrayList(); + List mergeList = Lists.newArrayList(); + int tableIndex = 0; + int col = 0; + AtomicInteger startRow = new AtomicInteger(10); + AtomicInteger endRow = new AtomicInteger(0); + majorMap.forEach((k,v) -> { v.forEach((k2,v2) -> { List row = Lists.newArrayList(); @@ -1160,9 +1057,15 @@ public class BlStuAnswerServiceImpl extends ServiceImpl sumRow = Lists.newArrayList(); //学院 + 小计 @@ -1183,25 +1086,28 @@ public class BlStuAnswerServiceImpl extends ServiceImpl result, String id) { - var list = baseMapper.i1_1(id); + public void i1_1(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.i1_1(blStuMain); String imagePath = getStackHistogram(list, true, null, "30", "20"); result.put("i1_1", imagePath); log.info(imagePath); } - public void b1_1(WordOperator wo, Map result, String id) { - result.put("b1_1_1", getMapStr(baseMapper.b1_1_1(id))); - result.put("b1_1_2", getMapStr(baseMapper.b1_1_2(id))); - result.put("b1_1_3", getMapStr(baseMapper.b1_1_3(id))); - result.put("b1_1_4", getMapStr(baseMapper.b1_1_4(id))); + public void b1_1(WordOperator wo, Map result, BlStuInfo blStuMain) { + result.put("b1_1_1", getMapStr(baseMapper.b1_1_1(blStuMain))); + result.put("b1_1_2", getMapStr(baseMapper.b1_1_2(blStuMain))); + result.put("b1_1_3", getMapStr(baseMapper.b1_1_3(blStuMain))); + result.put("b1_1_4", getMapStr(baseMapper.b1_1_4(blStuMain))); } //图片i1_2 - public void i1_2(WordOperator wo, Map result, String id) { - var list = baseMapper.i1_2(id); + public void i1_2(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.i1_2(blStuMain); if(list != null && !list.isEmpty()){ String imagePath = getRadarChart(list.get(0)); result.put("i1_2", imagePath); @@ -1210,8 +1116,8 @@ public class BlStuAnswerServiceImpl extends ServiceImpl result, String id) { - var list = baseMapper.t1_3(id); + public void t1_3(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.t1_3(blStuMain); List> table = Lists.newArrayList(); list.forEach(x -> { List col = Lists.newArrayList(); @@ -1227,8 +1133,8 @@ public class BlStuAnswerServiceImpl extends ServiceImpl result, String id) { - var list = baseMapper.t1_4(id); + public void t1_4(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.t1_4(blStuMain); List> table = Lists.newArrayList(); list.forEach(x -> { List col = Lists.newArrayList(); @@ -1243,17 +1149,17 @@ public class BlStuAnswerServiceImpl extends ServiceImpl result, String id) { - result.put("b1_2_1", getMapStr(baseMapper.b1_2_1(id))); - result.put("b1_2_2", getMapStr(baseMapper.b1_2_2(id))); - result.put("b1_2_3", getMapStr(baseMapper.b1_2_3(id))); - result.put("b1_2_4", getMapStr(baseMapper.b1_2_4(id))); + public void b1_2(WordOperator wo, Map result, BlStuInfo blStuMain) { + result.put("b1_2_1", getMapStr(baseMapper.b1_2_1(blStuMain))); + result.put("b1_2_2", getMapStr(baseMapper.b1_2_2(blStuMain))); + result.put("b1_2_3", getMapStr(baseMapper.b1_2_3(blStuMain))); + result.put("b1_2_4", getMapStr(baseMapper.b1_2_4(blStuMain))); } //表格 t1_5 //课外学习各方面 总体 大一 大二 大三 大四 - public void t1_5(WordOperator wo, Map result, String id) { - var list = baseMapper.t1_5(id); + public void t1_5(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.t1_5(blStuMain); List> table = Lists.newArrayList(); list.forEach(x -> { List col = Lists.newArrayList(); @@ -1270,8 +1176,8 @@ public class BlStuAnswerServiceImpl extends ServiceImpl result, String id) { - var list = baseMapper.t1_6(id); + public void t1_6(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.t1_6(blStuMain); List> table = Lists.newArrayList(); list.forEach(x -> { List col = Lists.newArrayList(); @@ -1285,17 +1191,17 @@ public class BlStuAnswerServiceImpl extends ServiceImpl result, String id) { - result.put("b1_2_5", getMapStr(baseMapper.b1_2_5(id))); - result.put("b1_2_6", getMapStr(baseMapper.b1_2_6(id))); - result.put("b1_2_7", getMapStr(baseMapper.b1_2_7(id))); - result.put("b1_2_8", getMapStr(baseMapper.b1_2_8(id))); + public void b1_2_5(WordOperator wo, Map result, BlStuInfo blStuMain) { + result.put("b1_2_5", getMapStr(baseMapper.b1_2_5(blStuMain))); + result.put("b1_2_6", getMapStr(baseMapper.b1_2_6(blStuMain))); + result.put("b1_2_7", getMapStr(baseMapper.b1_2_7(blStuMain))); + result.put("b1_2_8", getMapStr(baseMapper.b1_2_8(blStuMain))); } //表格 t1_7 //课外活动各方面 总体 大一 大二 大三 大四 - public void t1_7(WordOperator wo, Map result, String id) { - var list = baseMapper.t1_7(id); + public void t1_7(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.t1_7(blStuMain); List> table = Lists.newArrayList(); list.forEach(x -> { List col = Lists.newArrayList(); @@ -1312,8 +1218,8 @@ public class BlStuAnswerServiceImpl extends ServiceImpl result, String id) { - var list = baseMapper.t1_8(id); + public void t1_8(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.t1_8(blStuMain); List> table = Lists.newArrayList(); list.forEach(x -> { List col = Lists.newArrayList(); @@ -1328,24 +1234,24 @@ public class BlStuAnswerServiceImpl extends ServiceImpl result, String id) { - result.put("b1_3_1", getMapStr(baseMapper.b1_3_1(id))); - result.put("b1_3_2", getMapStr(baseMapper.b1_3_2(id))); - result.put("b1_3_3", getMapStr(baseMapper.b1_3_3(id))); - result.put("b1_3_4", getMapStr(baseMapper.b1_3_4(id))); + public void b1_3(WordOperator wo, Map result, BlStuInfo blStuMain) { + result.put("b1_3_1", getMapStr(baseMapper.b1_3_1(blStuMain))); + result.put("b1_3_2", getMapStr(baseMapper.b1_3_2(blStuMain))); + result.put("b1_3_3", getMapStr(baseMapper.b1_3_3(blStuMain))); + result.put("b1_3_4", getMapStr(baseMapper.b1_3_4(blStuMain))); } //图片i1_9 - public void i1_9(WordOperator wo, Map result, String id) { - var list = baseMapper.i1_9(id); + public void i1_9(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.i1_9(blStuMain); String imagePath = getStackHistogram(list); result.put("i1_9", imagePath); } //表格 t1_10 //同辈互动各方面 大一 大二 大三 大四 - public void t1_10(WordOperator wo, Map result, String id) { - var list = baseMapper.t1_10(id); + public void t1_10(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.t1_10(blStuMain); List> table = Lists.newArrayList(); list.forEach(x -> { List col = Lists.newArrayList(); @@ -1361,8 +1267,8 @@ public class BlStuAnswerServiceImpl extends ServiceImpl result, String id) { - var list = baseMapper.t1_11(id); + public void t1_11(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.t1_11(blStuMain); List> table = Lists.newArrayList(); list.forEach(x -> { List col = Lists.newArrayList(); @@ -1377,29 +1283,29 @@ public class BlStuAnswerServiceImpl extends ServiceImpl result, String id) { - result.put("b1_4_1", getMapStr(baseMapper.b1_4_1(id))); - result.put("b1_4_2", getMapStr(baseMapper.b1_4_2(id))); + public void b1_4(WordOperator wo, Map result, BlStuInfo blStuMain) { + result.put("b1_4_1", getMapStr(baseMapper.b1_4_1(blStuMain))); + result.put("b1_4_2", getMapStr(baseMapper.b1_4_2(blStuMain))); } //图片i1_12 - public void i1_12(WordOperator wo, Map result, String id) { - var list = baseMapper.i1_12(id); + public void i1_12(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.i1_12(blStuMain); String imagePath = getBaseHistogram(list); result.put("i1_12", imagePath); } //图片i1_13 - public void i1_13(WordOperator wo, Map result, String id) { - var list = baseMapper.i1_13(id); + public void i1_13(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.i1_13(blStuMain); String imagePath = getStackHistogram(list); result.put("i1_13", imagePath); } //表格 t1_14 //专业名称 每周至少一次 每月至少一次 每学期至少一次 每年至少一次 - public void t1_14(WordOperator wo, Map result, String id) { - var list = baseMapper.t1_14(id); + public void t1_14(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.t1_14(blStuMain); List> table = Lists.newArrayList(); list.forEach(x -> { List col = Lists.newArrayList(); @@ -1414,33 +1320,33 @@ public class BlStuAnswerServiceImpl extends ServiceImpl result, String id) { - result.put("b2_1_1", getMapStr(baseMapper.b2_1_1(id))); - result.put("b2_1_2", getMapStr(baseMapper.b2_1_2(id))); - result.put("b2_1_3", getMapStr(baseMapper.b2_1_3(id))); - result.put("b2_1_4", getMapStr(baseMapper.b2_1_4(id))); + public void b2_1(WordOperator wo, Map result, BlStuInfo blStuMain) { + result.put("b2_1_1", getMapStr(baseMapper.b2_1_1(blStuMain))); + result.put("b2_1_2", getMapStr(baseMapper.b2_1_2(blStuMain))); + result.put("b2_1_3", getMapStr(baseMapper.b2_1_3(blStuMain))); + result.put("b2_1_4", getMapStr(baseMapper.b2_1_4(blStuMain))); } //图片i2_1 - public void i2_1(WordOperator wo, Map result, String id) { - var list = baseMapper.i2_1(id); + public void i2_1(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.i2_1(blStuMain); String imagePath = getStackHistogram(list); result.put("i2_1", imagePath); } - public void b2_1_5(WordOperator wo, Map result, String id) { - result.put("b2_1_5", getMapStr(baseMapper.b2_1_5(id))); + public void b2_1_5(WordOperator wo, Map result, BlStuInfo blStuMain) { + result.put("b2_1_5", getMapStr(baseMapper.b2_1_5(blStuMain))); } //图片i2_2 - public void i2_2(WordOperator wo, Map result, String id) { - var list = baseMapper.i2_2(id); + public void i2_2(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.i2_2(blStuMain); String imagePath = getBaseHistogram(list); result.put("i2_2", imagePath); } //表格 t2_3 // 大一 大二 大三 大四 - public void t2_3(WordOperator wo, Map result, String id) { - var list = baseMapper.t2_3(id); + public void t2_3(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.t2_3(blStuMain); List> table = Lists.newArrayList(); list.forEach(x -> { List col = Lists.newArrayList(); @@ -1455,8 +1361,8 @@ public class BlStuAnswerServiceImpl extends ServiceImpl result, String id) { - var list = baseMapper.t2_4(id); + public void t2_4(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.t2_4(blStuMain); List> table = Lists.newArrayList(); list.forEach(x -> { List col = Lists.newArrayList(); @@ -1468,23 +1374,23 @@ public class BlStuAnswerServiceImpl extends ServiceImpl result, String id) { - var list = baseMapper.i2_5(id); + public void i2_5(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.i2_5(blStuMain); String imagePath = getStackHistogram(list); result.put("i2_5", imagePath); } //b2_1_6~9 - public void b2_1_6(WordOperator wo, Map result, String id) { - result.put("b2_1_6", getMapStr(baseMapper.b2_1_6(id))); - result.put("b2_1_7", getMapStr(baseMapper.b2_1_7(id))); - result.put("b2_1_8", getMapStr(baseMapper.b2_1_8(id))); - result.put("b2_1_9", getMapStr(baseMapper.b2_1_9(id))); + public void b2_1_6(WordOperator wo, Map result, BlStuInfo blStuMain) { + result.put("b2_1_6", getMapStr(baseMapper.b2_1_6(blStuMain))); + result.put("b2_1_7", getMapStr(baseMapper.b2_1_7(blStuMain))); + result.put("b2_1_8", getMapStr(baseMapper.b2_1_8(blStuMain))); + result.put("b2_1_9", getMapStr(baseMapper.b2_1_9(blStuMain))); } //图片i2_6 - public void i2_6(WordOperator wo, Map result, String id) { - var list = baseMapper.i2_6(id); + public void i2_6(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.i2_6(blStuMain); if(list != null && !list.isEmpty()){ String imagePath = getRadarChart100(list.get(0)); result.put("i2_6", imagePath); @@ -1493,8 +1399,8 @@ public class BlStuAnswerServiceImpl extends ServiceImpl result, String id) { - var list = baseMapper.t2_7(id); + public void t2_7(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.t2_7(blStuMain); List> table = Lists.newArrayList(); list.forEach(x -> { List col = Lists.newArrayList(); @@ -1508,34 +1414,34 @@ public class BlStuAnswerServiceImpl extends ServiceImpl result, String id) { - var list = baseMapper.i2_8(id); - var imagePath = getStackHistogram(list); + public void i2_8(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.i2_8(blStuMain); + var imagePath = getStackHistogram(list, true, "600", null, null); result.put("i2_8", imagePath); } //b2_2_1~6 - public void b2_2_1(WordOperator wo, Map result, String id) { - result.put("b2_2_1", getMapStr(baseMapper.b2_2_1(id))); - result.put("b2_2_2", getMapStr(baseMapper.b2_2_2(id))); - result.put("b2_2_3", getMapStr(baseMapper.b2_2_3(id))); - result.put("b2_2_4", getMapStr(baseMapper.b2_2_4(id))); - result.put("b2_2_5", getMapStr(baseMapper.b2_2_5(id))); - result.put("b2_2_6", getMapStr(baseMapper.b2_2_6(id))); + public void b2_2_1(WordOperator wo, Map result, BlStuInfo blStuMain) { + result.put("b2_2_1", getMapStr(baseMapper.b2_2_1(blStuMain))); + result.put("b2_2_2", getMapStr(baseMapper.b2_2_2(blStuMain))); + result.put("b2_2_3", getMapStr(baseMapper.b2_2_3(blStuMain))); + result.put("b2_2_4", getMapStr(baseMapper.b2_2_4(blStuMain))); + result.put("b2_2_5", getMapStr(baseMapper.b2_2_5(blStuMain))); + result.put("b2_2_6", getMapStr(baseMapper.b2_2_6(blStuMain))); } //图片i2_9 - public void i2_9(WordOperator wo, Map result, String id) { - var list = baseMapper.i2_9(id); + public void i2_9(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.i2_9(blStuMain); if(list != null && !list.isEmpty()){ String imagePath = getRadarChart(list.get(0)); result.put("i2_9", imagePath); } } //表格 t2_10 这个需要再看看,有合并行 - public void t2_10(WordOperator wo, Map result, String id) { + public void t2_10(WordOperator wo, Map result, BlStuInfo blStuMain) { //TODO 需要聚合第一列 - var list = baseMapper.t2_10(id); + var list = baseMapper.t2_10(blStuMain); List> table = Lists.newArrayList(); list.forEach(x -> { List col = Lists.newArrayList(); @@ -1551,8 +1457,8 @@ public class BlStuAnswerServiceImpl extends ServiceImpl result, String id) { - var list = baseMapper.t2_11(id); + public void t2_11(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.t2_11(blStuMain); List> table = Lists.newArrayList(); list.forEach(x -> { List col = Lists.newArrayList(); @@ -1569,22 +1475,22 @@ public class BlStuAnswerServiceImpl extends ServiceImpl result, String id) { - var list = baseMapper.i2_12(id); + public void i2_12(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.i2_12(blStuMain); var imagePath = getStackHistogram(list); result.put("i2_12", imagePath); } //b2_3_1~4 - public void b2_3_1(WordOperator wo, Map result, String id) { - result.put("b2_3_1", getMapStr(baseMapper.b2_3_1(id))); - result.put("b2_3_2", getMapStr(baseMapper.b2_3_2(id))); - result.put("b2_3_3", getMapStr(baseMapper.b2_3_3(id))); - result.put("b2_3_4", getMapStr(baseMapper.b2_3_4(id))); + public void b2_3_1(WordOperator wo, Map result, BlStuInfo blStuMain) { + result.put("b2_3_1", getMapStr(baseMapper.b2_3_1(blStuMain))); + result.put("b2_3_2", getMapStr(baseMapper.b2_3_2(blStuMain))); + result.put("b2_3_3", getMapStr(baseMapper.b2_3_3(blStuMain))); + result.put("b2_3_4", getMapStr(baseMapper.b2_3_4(blStuMain))); } //图片i2_13 - public void i2_13(WordOperator wo, Map result, String id) { - var list = baseMapper.i2_13(id); + public void i2_13(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.i2_13(blStuMain); if(list != null && !list.isEmpty()){ String imagePath = getRadarChart(list.get(0)); result.put("i2_13", imagePath); @@ -1592,8 +1498,8 @@ public class BlStuAnswerServiceImpl extends ServiceImpl result, String id) { - var list = baseMapper.t2_14(id); + public void t2_14(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.t2_14(blStuMain); List> table = Lists.newArrayList(); list.forEach(x -> { List col = Lists.newArrayList(); @@ -1609,8 +1515,8 @@ public class BlStuAnswerServiceImpl extends ServiceImpl result, String id) { - var list = baseMapper.t2_15(id); + public void t2_15(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.t2_15(blStuMain); List> table = Lists.newArrayList(); list.forEach(x -> { List col = Lists.newArrayList(); @@ -1625,38 +1531,38 @@ public class BlStuAnswerServiceImpl extends ServiceImpl result, String id) { - result.put("b2_4_1", getMapStr(baseMapper.b2_4_1(id))); - result.put("b2_4_2", getMapStr(baseMapper.b2_4_2(id))); - result.put("b2_4_3", getMapStr(baseMapper.b2_4_3(id))); - result.put("b2_4_4", getMapStr(baseMapper.b2_4_4(id))); - result.put("b2_4_5", getMapStr(baseMapper.b2_4_5(id))); - result.put("b2_4_6", getMapStr(baseMapper.b2_4_6(id))); + public void b2_4_1(WordOperator wo, Map result, BlStuInfo blStuMain) { + result.put("b2_4_1", getMapStr(baseMapper.b2_4_1(blStuMain))); + result.put("b2_4_2", getMapStr(baseMapper.b2_4_2(blStuMain))); + result.put("b2_4_3", getMapStr(baseMapper.b2_4_3(blStuMain))); + result.put("b2_4_4", getMapStr(baseMapper.b2_4_4(blStuMain))); + result.put("b2_4_5", getMapStr(baseMapper.b2_4_5(blStuMain))); + result.put("b2_4_6", getMapStr(baseMapper.b2_4_6(blStuMain))); } //图片i2_16 - public void i2_16(WordOperator wo, Map result, String id) { - var list = baseMapper.i2_16(id); + public void i2_16(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.i2_16(blStuMain); var imagePath = getBaseTransverseHistogram(list); result.put("i2_16", imagePath); } //图片i2_17 - public void i2_17(WordOperator wo, Map result, String id) { - var list = baseMapper.i2_17(id); + public void i2_17(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.i2_17(blStuMain); var imagePath = getStackHistogram(list); result.put("i2_17", imagePath); } //b2_5_1~3 - public void b2_5_1(WordOperator wo, Map result, String id) { - result.put("b2_5_1", getMapStr(baseMapper.b2_5_1(id))); - result.put("b2_5_2", getMapStr(baseMapper.b2_5_2(id))); - result.put("b2_5_3", getMapStr(baseMapper.b2_5_3(id))); + public void b2_5_1(WordOperator wo, Map result, BlStuInfo blStuMain) { + result.put("b2_5_1", getMapStr(baseMapper.b2_5_1(blStuMain))); + result.put("b2_5_2", getMapStr(baseMapper.b2_5_2(blStuMain))); + result.put("b2_5_3", getMapStr(baseMapper.b2_5_3(blStuMain))); } //图片i2_18 - public void i2_18(WordOperator wo, Map result, String id) { - var list = baseMapper.i2_18(id); + public void i2_18(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.i2_18(blStuMain); if(list != null && !list.isEmpty()){ String imagePath = getRadarChart100(list.get(0)); result.put("i2_18", imagePath); @@ -1664,8 +1570,8 @@ public class BlStuAnswerServiceImpl extends ServiceImpl result, String id) { - var list = baseMapper.t2_19(id); + public void t2_19(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.t2_19(blStuMain); List> table = Lists.newArrayList(); list.forEach(x -> { List col = Lists.newArrayList(); @@ -1680,8 +1586,8 @@ public class BlStuAnswerServiceImpl extends ServiceImpl result, String id) { - var list = baseMapper.t2_20(id); + public void t2_20(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.t2_20(blStuMain); List> table = Lists.newArrayList(); list.forEach(x -> { List col = Lists.newArrayList(); @@ -1694,40 +1600,40 @@ public class BlStuAnswerServiceImpl extends ServiceImpl result, String id) { - result.put("b2_6_1", getMapStr(baseMapper.b2_6_1(id))); - result.put("b2_6_2", getMapStr(baseMapper.b2_6_2(id))); - result.put("b2_6_3", getMapStr(baseMapper.b2_6_3(id))); - result.put("b2_6_4", getMapStr(baseMapper.b2_6_4(id))); - result.put("b2_6_5", getMapStr(baseMapper.b2_6_5(id))); + public void b2_6_1(WordOperator wo, Map result, BlStuInfo blStuMain) { + result.put("b2_6_1", getMapStr(baseMapper.b2_6_1(blStuMain))); + result.put("b2_6_2", getMapStr(baseMapper.b2_6_2(blStuMain))); + result.put("b2_6_3", getMapStr(baseMapper.b2_6_3(blStuMain))); + result.put("b2_6_4", getMapStr(baseMapper.b2_6_4(blStuMain))); + result.put("b2_6_5", getMapStr(baseMapper.b2_6_5(blStuMain))); } //图片i2_21 - public void i2_21(WordOperator wo, Map result, String id) { - var list = baseMapper.i2_21(id); + public void i2_21(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.i2_21(blStuMain); var imagePath = getBaseTransverseHistogram(list); result.put("i2_21", imagePath); } //图片i2_22 - public void i2_22(WordOperator wo, Map result, String id) { - var list = baseMapper.i2_22(id); + public void i2_22(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.i2_22(blStuMain); var imagePath = getStackHistogram(list); result.put("i2_22", imagePath); } //b2_6_6~10 - public void b2_6_6(WordOperator wo, Map result, String id) { - result.put("b2_6_6", getMapStr(baseMapper.b2_6_6(id))); - result.put("b2_6_7", getMapStr(baseMapper.b2_6_7(id))); - result.put("b2_6_8", getMapStr(baseMapper.b2_6_8(id))); - result.put("b2_6_9", getMapStr(baseMapper.b2_6_9(id))); - result.put("b2_6_10", getMapStr(baseMapper.b2_6_10(id))); + public void b2_6_6(WordOperator wo, Map result, BlStuInfo blStuMain) { + result.put("b2_6_6", getMapStr(baseMapper.b2_6_6(blStuMain))); + result.put("b2_6_7", getMapStr(baseMapper.b2_6_7(blStuMain))); + result.put("b2_6_8", getMapStr(baseMapper.b2_6_8(blStuMain))); + result.put("b2_6_9", getMapStr(baseMapper.b2_6_9(blStuMain))); + result.put("b2_6_10", getMapStr(baseMapper.b2_6_10(blStuMain))); } //图片i2_23 - public void i2_23(WordOperator wo, Map result, String id) { - var list = baseMapper.i2_23(id); + public void i2_23(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.i2_23(blStuMain); if(list != null && !list.isEmpty()){ String imagePath = getRadarChart100(list.get(0)); result.put("i2_23", imagePath); @@ -1736,8 +1642,8 @@ public class BlStuAnswerServiceImpl extends ServiceImpl result, String id) { - var list = baseMapper.t2_24(id); + public void t2_24(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.t2_24(blStuMain); List> table = Lists.newArrayList(); list.forEach(x -> { List col = Lists.newArrayList(); @@ -1753,8 +1659,8 @@ public class BlStuAnswerServiceImpl extends ServiceImpl result, String id) { - var list = baseMapper.t2_25(id); + public void t2_25(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.t2_25(blStuMain); List> table = Lists.newArrayList(); list.forEach(x -> { List col = Lists.newArrayList(); @@ -1770,30 +1676,30 @@ public class BlStuAnswerServiceImpl extends ServiceImpl result, String id) { - var list = baseMapper.i2_26(id); + public void i2_26(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.i2_26(blStuMain); var imagePath = getStackHistogram(list); result.put("i2_26", imagePath); } //b2_7_1~4 - public void b2_7_1(WordOperator wo, Map result, String id) { - result.put("b2_7_1", getMapStr(baseMapper.b2_7_1(id))); - result.put("b2_7_2", getMapStr(baseMapper.b2_7_2(id))); - result.put("b2_7_3", getMapStr(baseMapper.b2_7_3(id))); - result.put("b2_7_4", getMapStr(baseMapper.b2_7_4(id))); + public void b2_7_1(WordOperator wo, Map result, BlStuInfo blStuMain) { + result.put("b2_7_1", getMapStr(baseMapper.b2_7_1(blStuMain))); + result.put("b2_7_2", getMapStr(baseMapper.b2_7_2(blStuMain))); + result.put("b2_7_3", getMapStr(baseMapper.b2_7_3(blStuMain))); + result.put("b2_7_4", getMapStr(baseMapper.b2_7_4(blStuMain))); } //图片i2_27 - public void i2_27(WordOperator wo, Map result, String id) { - var list = baseMapper.i2_27(id); + public void i2_27(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.i2_27(blStuMain); if(list != null && !list.isEmpty()){ String imagePath = getRadarChart100(list.get(0)); result.put("i2_27", imagePath); } } //图片i2_28 - public void t2_28(WordOperator wo, Map result, String id) { - var list = baseMapper.t2_28(id); + public void t2_28(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.t2_28(blStuMain); List> table = Lists.newArrayList(); list.forEach(x -> { List col = Lists.newArrayList(); @@ -1807,22 +1713,22 @@ public class BlStuAnswerServiceImpl extends ServiceImpl result, String id) { - var list = baseMapper.i2_29(id); + public void i2_29(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.i2_29(blStuMain); var imagePath = getStackHistogram(list); result.put("i2_29", imagePath); } //b2_8_1~5 - public void b2_8_1(WordOperator wo, Map result, String id) { - result.put("b2_8_1", getMapStr(baseMapper.b2_8_1(id))); - result.put("b2_8_2", getMapStr(baseMapper.b2_8_2(id))); - result.put("b2_8_3", getMapStr(baseMapper.b2_8_3(id))); - result.put("b2_8_4", getMapStr(baseMapper.b2_8_4(id))); - result.put("b2_8_5", getMapStr(baseMapper.b2_8_5(id))); + public void b2_8_1(WordOperator wo, Map result, BlStuInfo blStuMain) { + result.put("b2_8_1", getMapStr(baseMapper.b2_8_1(blStuMain))); + result.put("b2_8_2", getMapStr(baseMapper.b2_8_2(blStuMain))); + result.put("b2_8_3", getMapStr(baseMapper.b2_8_3(blStuMain))); + result.put("b2_8_4", getMapStr(baseMapper.b2_8_4(blStuMain))); + result.put("b2_8_5", getMapStr(baseMapper.b2_8_5(blStuMain))); } //图片i2_30 - public void i2_30(WordOperator wo, Map result, String id) { - var list = baseMapper.i2_30(id); + public void i2_30(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.i2_30(blStuMain); if(list != null && !list.isEmpty()){ String imagePath = getRadarChart(list.get(0)); result.put("i2_30", imagePath); @@ -1830,8 +1736,8 @@ public class BlStuAnswerServiceImpl extends ServiceImpl result, String id) { - var list = baseMapper.t2_31(id); + public void t2_31(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.t2_31(blStuMain); List> table = Lists.newArrayList(); list.forEach(x -> { List col = Lists.newArrayList(); @@ -1846,8 +1752,8 @@ public class BlStuAnswerServiceImpl extends ServiceImpl result, String id) { - var list = baseMapper.t2_32(id); + public void t2_32(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.t2_32(blStuMain); List> table = Lists.newArrayList(); list.forEach(x -> { List col = Lists.newArrayList(); @@ -1862,24 +1768,24 @@ public class BlStuAnswerServiceImpl extends ServiceImpl result, String id) { - var list = baseMapper.i2_33(id); + public void i2_33(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.i2_33(blStuMain); var imagePath = getStackHistogram(list, true, "500", null, null); result.put("i2_33", imagePath); } //b2_9_1~7 - public void b2_9_1(WordOperator wo, Map result, String id) { - result.put("b2_9_1", getMapStr(baseMapper.b2_9_1(id))); - result.put("b2_9_2", getMapStr(baseMapper.b2_9_2(id))); - result.put("b2_9_3", getMapStr(baseMapper.b2_9_3(id))); - result.put("b2_9_4", getMapStr(baseMapper.b2_9_4(id))); - result.put("b2_9_5", getMapStr(baseMapper.b2_9_5(id))); - result.put("b2_9_6", getMapStr(baseMapper.b2_9_6(id))); - result.put("b2_9_7", getMapStr(baseMapper.b2_9_7(id))); + public void b2_9_1(WordOperator wo, Map result, BlStuInfo blStuMain) { + result.put("b2_9_1", getMapStr(baseMapper.b2_9_1(blStuMain))); + result.put("b2_9_2", getMapStr(baseMapper.b2_9_2(blStuMain))); + result.put("b2_9_3", getMapStr(baseMapper.b2_9_3(blStuMain))); + result.put("b2_9_4", getMapStr(baseMapper.b2_9_4(blStuMain))); + result.put("b2_9_5", getMapStr(baseMapper.b2_9_5(blStuMain))); + result.put("b2_9_6", getMapStr(baseMapper.b2_9_6(blStuMain))); + result.put("b2_9_7", getMapStr(baseMapper.b2_9_7(blStuMain))); } //图片i2_34 - public void i2_34(WordOperator wo, Map result, String id) { - var list = baseMapper.i2_34(id); + public void i2_34(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.i2_34(blStuMain); if(list != null && !list.isEmpty()){ String imagePath = getRadarChart100(list.get(0)); result.put("i2_34", imagePath); @@ -1887,8 +1793,8 @@ public class BlStuAnswerServiceImpl extends ServiceImpl result, String id) { - var list = baseMapper.t2_35(id); + public void t2_35(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.t2_35(blStuMain); List> table = Lists.newArrayList(); list.forEach(x -> { List col = Lists.newArrayList(); @@ -1903,8 +1809,8 @@ public class BlStuAnswerServiceImpl extends ServiceImpl result, String id) { - var list = baseMapper.t2_36(id); + public void t2_36(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.t2_36(blStuMain); List> table = Lists.newArrayList(); list.forEach(x -> { List col = Lists.newArrayList(); @@ -1921,21 +1827,21 @@ public class BlStuAnswerServiceImpl extends ServiceImpl result, String id) { - var list = baseMapper.i3_1(id); + public void i3_1(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.i3_1(blStuMain); var imagePath = getStackHistogram(list); result.put("i3_1", imagePath); } //b3_1_1~4 - public void b3_1_1(WordOperator wo, Map result, String id) { - result.put("b3_1_1", getMapStr(baseMapper.b3_1_1(id))); - result.put("b3_1_2", getMapStr(baseMapper.b3_1_2(id))); - result.put("b3_1_3", getMapStr(baseMapper.b3_1_3(id))); - result.put("b3_1_4", getMapStr(baseMapper.b3_1_4(id))); + public void b3_1_1(WordOperator wo, Map result, BlStuInfo blStuMain) { + result.put("b3_1_1", getMapStr(baseMapper.b3_1_1(blStuMain))); + result.put("b3_1_2", getMapStr(baseMapper.b3_1_2(blStuMain))); + result.put("b3_1_3", getMapStr(baseMapper.b3_1_3(blStuMain))); + result.put("b3_1_4", getMapStr(baseMapper.b3_1_4(blStuMain))); } //图片i3_2 - public void i3_2(WordOperator wo, Map result, String id) { - var list = baseMapper.i3_2(id); + public void i3_2(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.i3_2(blStuMain); if(list != null && !list.isEmpty()){ String imagePath = getRadarChart100(list.get(0)); result.put("i3_2", imagePath); @@ -1943,8 +1849,8 @@ public class BlStuAnswerServiceImpl extends ServiceImpl result, String id) { - var list = baseMapper.t3_3(id); + public void t3_3(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.t3_3(blStuMain); List> table = Lists.newArrayList(); list.forEach(x -> { List col = Lists.newArrayList(); @@ -1959,8 +1865,8 @@ public class BlStuAnswerServiceImpl extends ServiceImpl result, String id) { - var list = baseMapper.t3_4(id); + public void t3_4(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.t3_4(blStuMain); List> table = Lists.newArrayList(); list.forEach(x -> { List col = Lists.newArrayList(); @@ -1974,33 +1880,33 @@ public class BlStuAnswerServiceImpl extends ServiceImpl result, String id) { - result.put("b3_2_1", getMapStr(baseMapper.b3_2_1(id))); - result.put("b3_2_2", getMapStr(baseMapper.b3_2_2(id))); - result.put("b3_2_3", getMapStr(baseMapper.b3_2_3(id))); - result.put("b3_2_4", getMapStr(baseMapper.b3_2_4(id))); + public void b3_2_1(WordOperator wo, Map result, BlStuInfo blStuMain) { + result.put("b3_2_1", getMapStr(baseMapper.b3_2_1(blStuMain))); + result.put("b3_2_2", getMapStr(baseMapper.b3_2_2(blStuMain))); + result.put("b3_2_3", getMapStr(baseMapper.b3_2_3(blStuMain))); + result.put("b3_2_4", getMapStr(baseMapper.b3_2_4(blStuMain))); } //图片i3_5 - public void i3_5(WordOperator wo, Map result, String id) { - var list = baseMapper.i3_5(id); + public void i3_5(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.i3_5(blStuMain); var imagePath = getStackHistogram(list); result.put("i3_5", imagePath); } //b3_2_5 - public void b3_2_5(WordOperator wo, Map result, String id) { - result.put("b3_2_5", getMapStr(baseMapper.b3_2_5(id))); + public void b3_2_5(WordOperator wo, Map result, BlStuInfo blStuMain) { + result.put("b3_2_5", getMapStr(baseMapper.b3_2_5(blStuMain))); } //图片i3_6 - public void i3_6(WordOperator wo, Map result, String id) { - var list = baseMapper.i3_6(id); + public void i3_6(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.i3_6(blStuMain); var imagePath = getBaseHistogram(list); result.put("i3_6", imagePath); } //表格 t3_7 //大一 大二 大三 大四 - public void t3_7(WordOperator wo, Map result, String id) { - var list = baseMapper.t3_7(id); + public void t3_7(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.t3_7(blStuMain); List> table = Lists.newArrayList(); list.forEach(x -> { List col = Lists.newArrayList(); @@ -2015,8 +1921,8 @@ public class BlStuAnswerServiceImpl extends ServiceImpl result, String id) { - var list = baseMapper.t3_8(id); + public void t3_8(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.t3_8(blStuMain); List> table = Lists.newArrayList(); list.forEach(x -> { List col = Lists.newArrayList(); @@ -2027,23 +1933,23 @@ public class BlStuAnswerServiceImpl extends ServiceImpl result, String id) { - var list = baseMapper.i3_9(id); + public void i3_9(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.i3_9(blStuMain); var imagePath = getStackHistogram(list); result.put("i3_9", imagePath); } //b3_3_1~5 - public void b3_3_1(WordOperator wo, Map result, String id) { - result.put("b3_3_1", getMapStr(baseMapper.b3_3_1(id))); - result.put("b3_3_2", getMapStr(baseMapper.b3_3_2(id))); - result.put("b3_3_3", getMapStr(baseMapper.b3_3_3(id))); - result.put("b3_3_4", getMapStr(baseMapper.b3_3_4(id))); - result.put("b3_3_5", getMapStr(baseMapper.b3_3_5(id))); + public void b3_3_1(WordOperator wo, Map result, BlStuInfo blStuMain) { + result.put("b3_3_1", getMapStr(baseMapper.b3_3_1(blStuMain))); + result.put("b3_3_2", getMapStr(baseMapper.b3_3_2(blStuMain))); + result.put("b3_3_3", getMapStr(baseMapper.b3_3_3(blStuMain))); + result.put("b3_3_4", getMapStr(baseMapper.b3_3_4(blStuMain))); + result.put("b3_3_5", getMapStr(baseMapper.b3_3_5(blStuMain))); } //图片i3_10 - public void i3_10(WordOperator wo, Map result, String id) { - var list = baseMapper.i3_10(id); + public void i3_10(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.i3_10(blStuMain); if(list != null && !list.isEmpty()){ String imagePath = getRadarChart(list.get(0)); result.put("i3_10", imagePath); @@ -2051,8 +1957,8 @@ public class BlStuAnswerServiceImpl extends ServiceImpl result, String id) { - var list = baseMapper.t3_11(id); + public void t3_11(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.t3_11(blStuMain); List> table = Lists.newArrayList(); list.forEach(x -> { List col = Lists.newArrayList(); @@ -2067,8 +1973,8 @@ public class BlStuAnswerServiceImpl extends ServiceImpl result, String id) { - var list = baseMapper.t3_12(id); + public void t3_12(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.t3_12(blStuMain); List> table = Lists.newArrayList(); list.forEach(x -> { List col = Lists.newArrayList(); @@ -2083,21 +1989,21 @@ public class BlStuAnswerServiceImpl extends ServiceImpl result, String id) { - var list = baseMapper.i4_1(id); + public void i4_1(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.i4_1(blStuMain); var imagePath = getStackHistogram(list); result.put("i4_1", imagePath); } //b4_1_1~4 - public void b4_1_1(WordOperator wo, Map result, String id) { - result.put("b4_1_1", getMapStr(baseMapper.b4_1_1(id))); - result.put("b4_1_2", getMapStr(baseMapper.b4_1_2(id))); - result.put("b4_1_3", getMapStr(baseMapper.b4_1_3(id))); - result.put("b4_1_4", getMapStr(baseMapper.b4_1_4(id))); + public void b4_1_1(WordOperator wo, Map result, BlStuInfo blStuMain) { + result.put("b4_1_1", getMapStr(baseMapper.b4_1_1(blStuMain))); + result.put("b4_1_2", getMapStr(baseMapper.b4_1_2(blStuMain))); + result.put("b4_1_3", getMapStr(baseMapper.b4_1_3(blStuMain))); + result.put("b4_1_4", getMapStr(baseMapper.b4_1_4(blStuMain))); } //图片i4_2 - public void i4_2(WordOperator wo, Map result, String id) { - var list = baseMapper.i4_2(id); + public void i4_2(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.i4_2(blStuMain); if(list != null && !list.isEmpty()){ String imagePath = getRadarChart(list.get(0)); result.put("i4_2", imagePath); @@ -2106,8 +2012,8 @@ public class BlStuAnswerServiceImpl extends ServiceImpl result, String id) { - var list = baseMapper.t4_3(id); + public void t4_3(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.t4_3(blStuMain); List> table = Lists.newArrayList(); list.forEach(x -> { List col = Lists.newArrayList(); @@ -2122,8 +2028,8 @@ public class BlStuAnswerServiceImpl extends ServiceImpl result, String id) { - var list = baseMapper.t4_4(id); + public void t4_4(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.t4_4(blStuMain); List> table = Lists.newArrayList(); list.forEach(x -> { List col = Lists.newArrayList(); @@ -2137,25 +2043,25 @@ public class BlStuAnswerServiceImpl extends ServiceImpl result, String id) { - result.put("b4_2_1", getMapStr(baseMapper.b4_2_1(id))); - result.put("b4_2_2", getMapStr(baseMapper.b4_2_2(id))); - result.put("b4_2_3", getMapStr(baseMapper.b4_2_3(id))); - result.put("b4_2_4", getMapStr(baseMapper.b4_2_4(id))); - result.put("b4_2_5", getMapStr(baseMapper.b4_2_5(id))); - result.put("b4_2_6", getMapStr(baseMapper.b4_2_6(id))); + public void b4_2_1(WordOperator wo, Map result, BlStuInfo blStuMain) { + result.put("b4_2_1", getMapStr(baseMapper.b4_2_1(blStuMain))); + result.put("b4_2_2", getMapStr(baseMapper.b4_2_2(blStuMain))); + result.put("b4_2_3", getMapStr(baseMapper.b4_2_3(blStuMain))); + result.put("b4_2_4", getMapStr(baseMapper.b4_2_4(blStuMain))); + result.put("b4_2_5", getMapStr(baseMapper.b4_2_5(blStuMain))); + result.put("b4_2_6", getMapStr(baseMapper.b4_2_6(blStuMain))); } //图片i4_5 - public void i4_5(WordOperator wo, Map result, String id) { - var list = baseMapper.i4_5(id); + public void i4_5(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.i4_5(blStuMain); var imagePath = getBaseTransverseHistogram(list); result.put("i4_5", imagePath); } //表格 t4_6 //学业指导各方面 大一 大二 大三 大四 - public void t4_6(WordOperator wo, Map result, String id) { - var list = baseMapper.t4_6(id); + public void t4_6(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.t4_6(blStuMain); List> table = Lists.newArrayList(); list.forEach(x -> { List col = Lists.newArrayList(); @@ -2171,8 +2077,8 @@ public class BlStuAnswerServiceImpl extends ServiceImpl result, String id) { - var list = baseMapper.t4_7(id); + public void t4_7(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.t4_7(blStuMain); List> table = Lists.newArrayList(); list.forEach(x -> { List col = Lists.newArrayList(); @@ -2189,24 +2095,24 @@ public class BlStuAnswerServiceImpl extends ServiceImpl result, String id) { - var list = baseMapper.i4_8(id); + public void i4_8(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.i4_8(blStuMain); var imagePath = getStackHistogram(list); result.put("i4_8", imagePath); } //b4_3_1~5 - public void b4_3_1(WordOperator wo, Map result, String id) { - result.put("b4_3_1", getMapStr(baseMapper.b4_3_1(id))); - result.put("b4_3_2", getMapStr(baseMapper.b4_3_2(id))); - result.put("b4_3_3", getMapStr(baseMapper.b4_3_3(id))); - result.put("b4_3_4", getMapStr(baseMapper.b4_3_4(id))); - result.put("b4_3_5", getMapStr(baseMapper.b4_3_5(id))); + public void b4_3_1(WordOperator wo, Map result, BlStuInfo blStuMain) { + result.put("b4_3_1", getMapStr(baseMapper.b4_3_1(blStuMain))); + result.put("b4_3_2", getMapStr(baseMapper.b4_3_2(blStuMain))); + result.put("b4_3_3", getMapStr(baseMapper.b4_3_3(blStuMain))); + result.put("b4_3_4", getMapStr(baseMapper.b4_3_4(blStuMain))); + result.put("b4_3_5", getMapStr(baseMapper.b4_3_5(blStuMain))); } //图片i4_9 - public void i4_9(WordOperator wo, Map result, String id) { - var list = baseMapper.i4_9(id); + public void i4_9(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.i4_9(blStuMain); if(list != null && !list.isEmpty()){ String imagePath = getRadarChart100(list.get(0)); result.put("i4_9", imagePath); @@ -2215,8 +2121,8 @@ public class BlStuAnswerServiceImpl extends ServiceImpl result, String id) { - var list = baseMapper.t4_10(id); + public void t4_10(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.t4_10(blStuMain); List> table = Lists.newArrayList(); list.forEach(x -> { List col = Lists.newArrayList(); @@ -2232,8 +2138,8 @@ public class BlStuAnswerServiceImpl extends ServiceImpl result, String id) { - var list = baseMapper.t4_11(id); + public void t4_11(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.t4_11(blStuMain); List> table = Lists.newArrayList(); list.forEach(x -> { List col = Lists.newArrayList(); @@ -2249,25 +2155,25 @@ public class BlStuAnswerServiceImpl extends ServiceImpl result, String id) { - var list = baseMapper.i4_12(id); + public void i4_12(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.i4_12(blStuMain); var imagePath = getStackHistogram(list); result.put("i4_12", imagePath); } //b4_4_1~6 - public void b4_4_1(WordOperator wo, Map result, String id) { - result.put("b4_4_1", getMapStr(baseMapper.b4_4_1(id))); - result.put("b4_4_2", getMapStr(baseMapper.b4_4_2(id))); - result.put("b4_4_3", getMapStr(baseMapper.b4_4_3(id))); - result.put("b4_4_4", getMapStr(baseMapper.b4_4_4(id))); - result.put("b4_4_5", getMapStr(baseMapper.b4_4_5(id))); - result.put("b4_4_6", getMapStr(baseMapper.b4_4_6(id))); + public void b4_4_1(WordOperator wo, Map result, BlStuInfo blStuMain) { + result.put("b4_4_1", getMapStr(baseMapper.b4_4_1(blStuMain))); + result.put("b4_4_2", getMapStr(baseMapper.b4_4_2(blStuMain))); + result.put("b4_4_3", getMapStr(baseMapper.b4_4_3(blStuMain))); + result.put("b4_4_4", getMapStr(baseMapper.b4_4_4(blStuMain))); + result.put("b4_4_5", getMapStr(baseMapper.b4_4_5(blStuMain))); + result.put("b4_4_6", getMapStr(baseMapper.b4_4_6(blStuMain))); } //图片i4_13 - public void i4_13(WordOperator wo, Map result, String id) { - var list = baseMapper.i4_13(id); + public void i4_13(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.i4_13(blStuMain); if(list != null && !list.isEmpty()){ String imagePath = getRadarChart100(list.get(0)); result.put("i4_13", imagePath); @@ -2276,8 +2182,8 @@ public class BlStuAnswerServiceImpl extends ServiceImpl result, String id) { - var list = baseMapper.t4_14(id); + public void t4_14(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.t4_14(blStuMain); List> table = Lists.newArrayList(); list.forEach(x -> { List col = Lists.newArrayList(); @@ -2293,8 +2199,8 @@ public class BlStuAnswerServiceImpl extends ServiceImpl result, String id) { - var list = baseMapper.t4_15(id); + public void t4_15(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.t4_15(blStuMain); List> table = Lists.newArrayList(); list.forEach(x -> { List col = Lists.newArrayList(); @@ -2311,28 +2217,28 @@ public class BlStuAnswerServiceImpl extends ServiceImpl result, String id) { - result.put("b5_1_1", getMapStr(baseMapper.b5_1_1(id))); - result.put("b5_1_2", getMapStr(baseMapper.b5_1_2(id))); - result.put("b5_1_3", getMapStr(baseMapper.b5_1_3(id))); - result.put("b5_1_4", getMapStr(baseMapper.b5_1_4(id))); + public void b5_1_1(WordOperator wo, Map result, BlStuInfo blStuMain) { + result.put("b5_1_1", getMapStr(baseMapper.b5_1_1(blStuMain))); + result.put("b5_1_2", getMapStr(baseMapper.b5_1_2(blStuMain))); + result.put("b5_1_3", getMapStr(baseMapper.b5_1_3(blStuMain))); + result.put("b5_1_4", getMapStr(baseMapper.b5_1_4(blStuMain))); } //图片i5_1 - public void i5_1(WordOperator wo, Map result, String id) { - var list = baseMapper.i5_1(id); + public void i5_1(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.i5_1(blStuMain); var imagePath = getStackHistogram(list); result.put("i5_1", imagePath); } //b5_1_5 - public void b5_1_5(WordOperator wo, Map result, String id) { - result.put("b5_1_5", getMapStr(baseMapper.b5_1_5(id))); + public void b5_1_5(WordOperator wo, Map result, BlStuInfo blStuMain) { + result.put("b5_1_5", getMapStr(baseMapper.b5_1_5(blStuMain))); } //图片i5_2 - public void i5_2(WordOperator wo, Map result, String id) { - var list = baseMapper.i5_2(id); + public void i5_2(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.i5_2(blStuMain); if(list != null && !list.isEmpty()){ var json = """ { @@ -2357,15 +2263,17 @@ public class BlStuAnswerServiceImpl extends ServiceImpl runJs = Maps.newHashMap(); + runJs.put("runBefore","changeWH('400px','400px');");//自定宽高 + var imagePath = WebDriverUtil.getImgByteAuto(json, runJs); result.put("i5_2", imagePath); } } //表格 t5_3 // 大一 大二 大三 大四 - public void t5_3(WordOperator wo, Map result, String id) { - var list = baseMapper.t5_3(id); + public void t5_3(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.t5_3(blStuMain); List> table = Lists.newArrayList(); list.forEach(x -> { List col = Lists.newArrayList(); @@ -2381,8 +2289,8 @@ public class BlStuAnswerServiceImpl extends ServiceImpl result, String id) { - var list = baseMapper.t5_4(id); + public void t5_4(WordOperator wo, Map result, BlStuInfo blStuMain) { + var list = baseMapper.t5_4(blStuMain); List> table = Lists.newArrayList(); list.forEach(x -> { List col = Lists.newArrayList(); diff --git a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/tools/WebDriverUtil.java b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/tools/WebDriverUtil.java index 8ffd2f6..24289e0 100644 --- a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/tools/WebDriverUtil.java +++ b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/tools/WebDriverUtil.java @@ -181,6 +181,13 @@ public class WebDriverUtil { return getImgByte(json, "echarts500.html"); } + /** + * 获取图片自定义高度 + */ + public static String getImgByteAuto(String json, Map runJs) { + return getImgByte(json, "echartsAuto.html", runJs); + } + /** * 保存图片 * diff --git a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/tools/word/ExportWord.java b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/tools/word/ExportWord.java index 62a5fe0..307098f 100644 --- a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/tools/word/ExportWord.java +++ b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/tools/word/ExportWord.java @@ -3,6 +3,8 @@ package org.jeecg.modules.tools.word; import cn.hutool.core.io.FileUtil; import cn.hutool.core.io.IoUtil; import com.google.common.collect.Lists; +import lombok.AllArgsConstructor; +import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.apache.commons.io.IOUtils; import org.apache.poi.ss.usermodel.Workbook; diff --git a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/tools/word/TableMerge.java b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/tools/word/TableMerge.java new file mode 100644 index 0000000..963ddf7 --- /dev/null +++ b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/tools/word/TableMerge.java @@ -0,0 +1,20 @@ +package org.jeecg.modules.tools.word; + +import lombok.AllArgsConstructor; +import lombok.Data; + +/** + * @ClassName TableMerge + * @Description TODO + * @Author bai + * @Date 2024/7/23 下午8:45 + * @Version 1.0 + **/ +@Data +@AllArgsConstructor +public class TableMerge { + private int tableIndex; + private int col; + private int startRow; + private int endRow; +} diff --git a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/tools/word/WordOperator.java b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/tools/word/WordOperator.java index dedd4dd..40f0ed8 100644 --- a/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/tools/word/WordOperator.java +++ b/jeecg-boot/jeecg-module-demo/src/main/java/org/jeecg/modules/tools/word/WordOperator.java @@ -2,6 +2,8 @@ package org.jeecg.modules.tools.word; import cn.hutool.core.io.IoUtil; import com.google.common.collect.Lists; +import lombok.AllArgsConstructor; +import lombok.Data; import org.apache.commons.lang3.StringEscapeUtils; import org.apache.commons.lang3.StringUtils; import org.apache.poi.openxml4j.exceptions.InvalidFormatException; @@ -12,10 +14,7 @@ import org.jeecg.modules.tools.CommonUtil; import org.jeecg.modules.tools.FileUtils; import org.jeecg.modules.tools.Global; import org.jeecg.modules.tools.IdGen; -import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTShd; -import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTc; -import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTcPr; -import org.openxmlformats.schemas.wordprocessingml.x2006.main.STMerge; +import org.openxmlformats.schemas.wordprocessingml.x2006.main.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -1183,17 +1182,26 @@ public class WordOperator { /** * 合并单元格 - * @param tableIndex 第几个表格 - * @param startRow 第几行开始 - * @param startCol 第几列开始 - * @param endRow 第几行结束 - * @param endCol 第几列结束 + * @param tableMerge * @return */ - public WordOperator addTableMerge(int tableIndex,int startRow,int startCol,int endRow,int endCol){ + public WordOperator addTableMerge(TableMerge tableMerge){ + addTableMerge(tableMerge.getTableIndex(), tableMerge.getCol(), tableMerge.getStartRow(), tableMerge.getEndRow()); + return this; + } + + /** + * 合并单元格 + * @param tableIndex 第几个表格,从0开始 + * @param col 第几列,从0开始 + * @param startRow 第几行开始,从0开始 + * @param endRow 第几行结束,从0开始 + * @return + */ + public WordOperator addTableMerge(int tableIndex,int col,int startRow,int endRow){ XWPFTable table = doc.getTables().get(tableIndex); if(table == null){ - logger.error("没有找到表格!tableIndex: [{}] startRow: [{}] startCol: [{}] endRow: [{}] endCol: [{}]",tableIndex,startRow,startCol,endRow,endCol); + logger.error("没有找到表格!tableIndex: [{}] col: [{}] startRow: [{}] endRow: [{}]",tableIndex,col,startRow,endRow); return this; } if(table.getRow(startRow) == null){ @@ -1201,25 +1209,54 @@ public class WordOperator { return this; } - if(table.getRow(startRow).getCell(startCol) == null){ - logger.error("没有找到表格!startCol: [{}]",startCol); - return this; - } - if(table.getRow(endRow) == null){ logger.error("没有找到表格!endRow: [{}]",endRow); return this; } + logger.info("第{}个表格,列{},开始行{},结束行{}",tableIndex, col, startRow, endRow); +// XWPFTableCell startCell = table.getRow(startRow).getCell(startCol); +// CTTcPr startTcPr = startCell.getCTTc().getTcPr(); +// if(startTcPr == null) { +// startTcPr = startCell.getCTTc().addNewTcPr(); +// } - if(table.getRow(endRow).getCell(endCol) == null){ - logger.error("没有找到表格!startRow: [{}]",endCol); - return this; - } - table.getRow(startRow).getCell(startCol).getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.RESTART);//开始 - table.getRow(endRow).getCell(endCol).getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.CONTINUE);//结尾 +// startTcPr.addNewVMerge().setVal(STMerge.RESTART); +// startTcPr.addNewHMerge().setVal(STMerge.RESTART); +// +// XWPFTableCell endCell = table.getRow(endRow).getCell(endCol); +// CTTcPr endTcPr = endCell.getCTTc().getTcPr(); +// if(endTcPr == null) { +// endTcPr = endCell.getCTTc().addNewTcPr(); +// } +// +// endTcPr.addNewVMerge().setVal(STMerge.CONTINUE); +// endTcPr.addNewHMerge().setVal(STMerge.CONTINUE); + + mergeCellsVertically(table, col, startRow,endRow); + //table.getRow(startRow).getCell(startCol).getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.RESTART);//开始 + //table.getRow(endRow).getCell(endCol).getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.CONTINUE);//结尾 return this; } + public static void mergeCellsVertically(XWPFTable table, int col, int fromRow, int toRow) { + if (toRow > fromRow) { + for(int rowIndex = fromRow; rowIndex <= toRow; ++rowIndex) { + XWPFTableCell cell = table.getRow(rowIndex).getCell(col); + CTTcPr tcPr = cell.getCTTc().getTcPr(); + if(tcPr == null) { + tcPr = cell.getCTTc().addNewTcPr(); + } + CTVMerge vMerge = tcPr.addNewVMerge(); + if (rowIndex == fromRow) { + vMerge.setVal(STMerge.RESTART); + } else { + vMerge.setVal(STMerge.CONTINUE); + } + } + + } + } + /** * * 功能说明 : 文档再次替换时使用,因为之前已经替换一次了,所有需要将文档片段存入内存流中,在读取到文档类里,才能替换成功 diff --git a/jeecg-boot/jeecg-module-demo/src/main/resources/officetemplates/exp1/student-tjfx.docx b/jeecg-boot/jeecg-module-demo/src/main/resources/officetemplates/exp1/student-tjfx.docx index ea9eda6ad418689bb3bb702e389297f1d00f9e0a..d1da6dfeb699b8953c2eb6b16914bbd7fc4f76be 100644 GIT binary patch delta 44585 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 K69Dzu`~L%qafb!~ diff --git a/jeecg-boot/jeecg-module-demo/src/main/resources/web/html/echartsAuto.html b/jeecg-boot/jeecg-module-demo/src/main/resources/web/html/echartsAuto.html new file mode 100644 index 0000000..4a171ca --- /dev/null +++ b/jeecg-boot/jeecg-module-demo/src/main/resources/web/html/echartsAuto.html @@ -0,0 +1,52 @@ + + + + + + + + + +

+ + + + +