From 2ea90d207b5ff9ecf37f5fe97cd23876be85b2bf Mon Sep 17 00:00:00 2001 From: sugy <455459989@qq.com> Date: Wed, 14 Jan 2026 13:55:36 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=AE=89=E7=8E=AF=E5=8A=A0?= =?UTF-8?q?=E8=8D=AF=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/BsDosingRecController.java | 5 +- .../BsSafeInspectionPointController.java | 5 +- .../energy/pojo/entity/BsDosingRecEntity.java | 15 ++-- .../desk/energy/util/Configer.java | 85 ++++++++++++++++++ .../desk/energy/util/JasperReportUtil.java | 3 +- .../QA/废水化验记录导入模板.xls | Bin 20992 -> 19456 bytes .../safety/safety_inspectionPoint.jasper | Bin 35534 -> 32041 bytes .../springblade/system/mapper/UserMapper.xml | 2 +- 8 files changed, 100 insertions(+), 15 deletions(-) create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/energy/util/Configer.java diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/controller/BsDosingRecController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/controller/BsDosingRecController.java index 476ff162..f3b7dc47 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/controller/BsDosingRecController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/controller/BsDosingRecController.java @@ -180,7 +180,7 @@ public class BsDosingRecController extends BladeController { @PostMapping("/importExcel") @ApiOperationSupport(order = 11) @Operation(summary = "导入Excel", description = "MultipartFile") - public R importExcel(@RequestParam("file") MultipartFile file) { + public R importExcel(@RequestParam String dorType,@RequestParam("file") MultipartFile file) { R checkR = ExcelExtUtil.importExcelCheck(file); if (checkR != null) { return checkR; @@ -188,6 +188,9 @@ public class BsDosingRecController extends BladeController { List importList = ExcelUtil.read( file, 0, 1, BsDosingRecEntity.class ); + importList.forEach(x->{ + x.setDorType(dorType); + }); return R.status(bsDosingRecService.saveBatch(importList)); } /** diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/controller/BsSafeInspectionPointController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/controller/BsSafeInspectionPointController.java index 78a12180..35a1e47b 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/controller/BsSafeInspectionPointController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/controller/BsSafeInspectionPointController.java @@ -221,11 +221,8 @@ public class BsSafeInspectionPointController { if (reportId == null) { reportId = "safety_inspectionPoint"; } - Map map=new HashMap(); - map.put("companyName","客户公司的名称"); - map.put("companySN","客户公司的简称"); //ipIdList.forEach(id -> list.add(safeInspectionPointService.getByKey(id))); - exportUtil.export(reportId, exportType, "安全巡检点", list, map,request, response); + exportUtil.export(reportId, exportType, "安全巡检点", list, null,request, response); } /** * 巡检点配置表 导出pdf diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/pojo/entity/BsDosingRecEntity.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/pojo/entity/BsDosingRecEntity.java index b5363fee..2bb767b2 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/pojo/entity/BsDosingRecEntity.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/pojo/entity/BsDosingRecEntity.java @@ -54,11 +54,6 @@ public class BsDosingRecEntity extends BaseEntity { @Serial private static final long serialVersionUID = 1L; - /** - * 酸雾塔 - */ - @Schema(description = "酸雾塔") - private BigDecimal btId; /** * 设施 */ @@ -78,8 +73,8 @@ public class BsDosingRecEntity extends BaseEntity { * 加药时间 */ @Schema(description = "加药时间") - @JsonFormat(pattern = DateUtil.PATTERN_DATETIME) - @DateTimeFormat(pattern = DateUtil.PATTERN_DATETIME) + @JsonFormat(pattern = DateUtil.PATTERN_DATE) + @DateTimeFormat(pattern = DateUtil.PATTERN_DATE) private Date dosingTime; /** * 加药人 @@ -102,4 +97,10 @@ public class BsDosingRecEntity extends BaseEntity { @Schema(description = "类型:1、废气加药;2、废水加药") private String dorType; + /** + * 酸雾塔 + */ + @Schema(description = "酸雾塔") + private Long btId; + } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/util/Configer.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/util/Configer.java new file mode 100644 index 00000000..fcd5e584 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/util/Configer.java @@ -0,0 +1,85 @@ +package org.springblade.desk.energy.util; + +import com.alibaba.fastjson.JSONObject; +import com.videasoft.configs.EnumConfiger; +import com.videasoft.configs.XmlConfigReader; +import jakarta.annotation.PostConstruct; +import org.springframework.stereotype.Component; + +import java.text.MessageFormat; +import java.util.LinkedHashMap; +import java.util.Map; +@Component +public class Configer { + private static final Map configerMap = new LinkedHashMap(); + private static final Map enumConfigerMap = new LinkedHashMap(); + + public Configer() { + } + + public static String getValue(String code) { + return (String)configerMap.get(code); + } + + public static String getValue(String code, String defaultValue) { + String v = getValue(code); + return v == null ? defaultValue : v; + } + + public static String getValue(String id, String[] args) { + String value = getValue(id); + if (value != null) { + value = MessageFormat.format(value, (Object[])args); + } + + return value; + } + + public static EnumConfiger getEnumConfiger(String id) { + return (EnumConfiger)enumConfigerMap.get(id); + } + + public static String getEnumValue(String id, String code) { + String enumValue = null; + EnumConfiger enumConfiger = getEnumConfiger(id); + if (enumConfiger != null) { + enumValue = enumConfiger.getEnumValue(code); + } + + return enumValue; + } + + public static String getEnumValue(String id, String code, String[] args) { + String enumValue = getEnumValue(id, code); + if (enumValue != null) { + enumValue = MessageFormat.format(enumValue, (Object[])args); + } + + return enumValue; + } + + public static JSONObject getJsonEnum(String id) { + JSONObject json = new JSONObject(); + EnumConfiger enumConfiger = getEnumConfiger(id); + if (enumConfiger != null) { + json.putAll(enumConfiger.getOption()); + } + + return json; + } + @PostConstruct + public static void init() { + XmlConfigReader loader = new XmlConfigReader(); + configerMap.clear(); + configerMap.putAll(loader.loadKeyValues()); + enumConfigerMap.clear(); + enumConfigerMap.putAll(loader.loadEnumConfigs()); + } + + public static void appendLoad(XmlConfigReader reader) { + if (reader != null) { + configerMap.putAll(reader.loadKeyValues()); + enumConfigerMap.putAll(reader.loadEnumConfigs()); + } + } +} \ No newline at end of file diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/util/JasperReportUtil.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/util/JasperReportUtil.java index 755c4fb7..6816a3aa 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/util/JasperReportUtil.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/energy/util/JasperReportUtil.java @@ -1,6 +1,5 @@ package org.springblade.desk.energy.util; -import com.videasoft.configs.Configers; import com.videasoft.utils.other.Function; import com.videasoft.utils.reader.PathReader; import com.videasoft.webframework.common.web.report.JasperReportUtils; @@ -64,7 +63,7 @@ public class JasperReportUtil { ((Map)params).putAll(rm.getExtParam()); } - // ((Map)params).put("companyInfo", Configers.getEnumConfiger("company").getOption()); + ((Map)params).put("companyInfo", Configer.getEnumConfiger("company").getOption()); SubReportModel subReport = null; JasperReport subJS = null; ReportModel subRM = null; diff --git a/blade-service/blade-desk/src/main/resources/Excel/QA/废水化验记录导入模板.xls b/blade-service/blade-desk/src/main/resources/Excel/QA/废水化验记录导入模板.xls index 9b676fc1028a9dbf6a2f95ee230cf1d6d055abbb..cd906dd541ffc094949ac05c9874a20948b5f322 100644 GIT binary patch literal 19456 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

Z|3`djAK_c0FRGVoT1^M zhXWCA@nHHt?myoG`1lfN5xv#ID_G@Joxj)XBQ$)m_+eN4q8u8?(fYSE{=Y-ihZ-M0 zB?KOpes%H}OB&J<3Hj=*xkGt6$|E0Ns3cFSX#W4Q@BUwJ+XwPuAbQSWH|Tf4J@m zwBz7$T*LHm@Zhqe;eumdEO<;y29J7Xg2(Z04tN~n^1|nY%y;<025kaw0}D z{8z#l2r-UhY0;qS?oQ+V^;- zi7*ewf9042v;>%8(_=IQ4IE$jQ9t38b5{!7E%leKfbzS(E$RR?O(mKpOmHBQgNq_i#b^z2I@Kfr*$W{@Vn`F%9Eg zU@G1RLZo5e>IUtxJFF(LR}6!eITTuGdkBX^j~E7=36O#gWl_&CSed3!?KuVRnEy}d z2@<$kRV@SdJsa@e#GkZ-NqT!g@P%t9;sX?K>b@P^w!?#%i>iJqxcizx{IzSpa k#KLg`-_&UZS2tM4dJ}iJ;+N^}6q+BT;BptohW`ZjzbQaA#sB~S literal 20992 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 z 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 - and role_id = #{user.roleId} + and role_id like '%' || #{user.roleId} || '%' and real_name = #{user.realName}