From 68cfa48820a5b62d8c181818bc076b7f3ead904f Mon Sep 17 00:00:00 2001 From: chenqi Date: Tue, 9 Jun 2026 16:37:59 +0800 Subject: [PATCH] =?UTF-8?q?refactor(config):=20=E9=87=8D=E6=9E=84=E5=BA=94?= =?UTF-8?q?=E7=94=A8=E9=85=8D=E7=BD=AE=E4=B8=AD=E7=9A=84Jackson=E5=BA=8F?= =?UTF-8?q?=E5=88=97=E5=8C=96=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将Jackson2ObjectMapperBuilderCustomizer替换为直接配置ObjectMapper实例 - 移除未使用的Logger导入和日志变量声明 - 统一日期时间序列化配置方式,禁用时间戳格式 - 更新反序列化上下文参数命名以保持一致性 - 简化泛型类型声明,使用钻石操作符 fix(patient): 修复患者管理中的数据库查询语法错误 - 移除PatientManageMapper.xml中多余的逗号导致的SQL语法问题 - 确保字段列表格式正确以避免数据库解析错误 fix(rationaldrug): 修正合理用药模块API端点路径 - 移除API路径中的healthlink-his前缀,统一使用/api/v1基础路径 - 保持所有处方审核相关接口的一致性 feat(patient): 在患者添加对话框中增加联系人信息字段 - 添加联系人姓名、关系和电话号码输入表单 - 为新字段提供相应的验证规则和占位符提示 - 保持与现有监护人信息字段的界面布局一致 --- .../framework/config/ApplicationConfig.java | 35 ++++++------ .../dto/FlexibleDateDeserializer.java | 2 +- .../patientmanage/PatientManageMapper.xml | 4 +- healthlink-his-ui/src/api/rationaldrug.js | 24 ++++----- .../src/api/rationaldrug/index.js | 22 ++++---- .../components/patientAddDialog.vue | 54 ++++++++++++++++++- 6 files changed, 96 insertions(+), 45 deletions(-) diff --git a/healthlink-his-server/core-framework/src/main/java/com/core/framework/config/ApplicationConfig.java b/healthlink-his-server/core-framework/src/main/java/com/core/framework/config/ApplicationConfig.java index 3845efa45..611ce1d3d 100755 --- a/healthlink-his-server/core-framework/src/main/java/com/core/framework/config/ApplicationConfig.java +++ b/healthlink-his-server/core-framework/src/main/java/com/core/framework/config/ApplicationConfig.java @@ -1,20 +1,19 @@ package com.core.framework.config; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer; import org.mybatis.spring.annotation.MapperScan; -import org.springframework.boot.jackson2.autoconfigure.Jackson2ObjectMapperBuilderCustomizer; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.EnableAspectJAutoProxy; import java.io.IOException; +import java.text.SimpleDateFormat; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.TimeZone; @@ -23,15 +22,14 @@ import java.util.TimeZone; @EnableAspectJAutoProxy(exposeProxy = true) @MapperScan({"com.core.**.mapper", "com.healthlink.his.**.mapper"}) public class ApplicationConfig { - private static final Logger log = LoggerFactory.getLogger(ApplicationConfig.class); - private static final JsonDeserializer LOCAL_DATE_TIME_DESERIALIZER = new JsonDeserializer() { + private static final JsonDeserializer LOCAL_DATE_TIME_DESERIALIZER = new JsonDeserializer<>() { private static final DateTimeFormatter ISO_FORMATTER = DateTimeFormatter.ISO_LOCAL_DATE_TIME; private static final DateTimeFormatter SIMPLE_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); private static final DateTimeFormatter SLASH_FORMATTER = DateTimeFormatter.ofPattern("yyyy/M/d HH:mm:ss"); @Override - public LocalDateTime deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { + public LocalDateTime deserialize(JsonParser p, DeserializationContext context) throws IOException { String text = p.getText(); if (text == null || text.isEmpty()) return null; String cleaned = text.replaceAll("[Zz]$", "").replaceAll("[+-]\\d{2}:?\\d{2}$", ""); @@ -42,14 +40,17 @@ public class ApplicationConfig { }; @Bean - public Jackson2ObjectMapperBuilderCustomizer jacksonObjectMapperCustomization() { - return builder -> { - builder.timeZone(TimeZone.getDefault()); - builder.simpleDateFormat("yyyy-MM-dd HH:mm:ss"); - JavaTimeModule javaTimeModule = new JavaTimeModule(); - javaTimeModule.addDeserializer(LocalDateTime.class, LOCAL_DATE_TIME_DESERIALIZER); - builder.modules(javaTimeModule); - builder.serializerByType(LocalDateTime.class, new LocalDateTimeSerializer(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); - }; + public ObjectMapper objectMapper() { + ObjectMapper mapper = new ObjectMapper(); + mapper.setTimeZone(TimeZone.getDefault()); + mapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")); + mapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS); + + JavaTimeModule javaTimeModule = new JavaTimeModule(); + javaTimeModule.addDeserializer(LocalDateTime.class, LOCAL_DATE_TIME_DESERIALIZER); + javaTimeModule.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + mapper.registerModule(javaTimeModule); + + return mapper; } -} +} \ No newline at end of file diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/patientmanage/dto/FlexibleDateDeserializer.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/patientmanage/dto/FlexibleDateDeserializer.java index 6c5074b09..b4051fe9c 100644 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/patientmanage/dto/FlexibleDateDeserializer.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/patientmanage/dto/FlexibleDateDeserializer.java @@ -26,7 +26,7 @@ public class FlexibleDateDeserializer extends JsonDeserializer { }; @Override - public Date deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { + public Date deserialize(JsonParser p, DeserializationContext context) throws IOException { String dateStr = p.getValueAsString(); if (dateStr == null || dateStr.isEmpty()) { return null; diff --git a/healthlink-his-server/healthlink-his-application/src/main/resources/mapper/patientmanage/PatientManageMapper.xml b/healthlink-his-server/healthlink-his-application/src/main/resources/mapper/patientmanage/PatientManageMapper.xml index 5fc2c82d4..168a0ea2e 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/resources/mapper/patientmanage/PatientManageMapper.xml +++ b/healthlink-his-server/healthlink-his-application/src/main/resources/mapper/patientmanage/PatientManageMapper.xml @@ -49,7 +49,7 @@ pt.guardian_address, pt.patient_derived, pt.education_level, - pt.company_address, + pt.company_address FROM ( SELECT ( @@ -103,7 +103,7 @@ p.guardian_address, p.patient_derived, p.education_level, - p.company_address, + p.company_address FROM adm_patient p where p.delete_flag = '0' ) AS pt diff --git a/healthlink-his-ui/src/api/rationaldrug.js b/healthlink-his-ui/src/api/rationaldrug.js index d19d0dbd5..e7a484ce2 100644 --- a/healthlink-his-ui/src/api/rationaldrug.js +++ b/healthlink-his-ui/src/api/rationaldrug.js @@ -2,51 +2,51 @@ import request from '@/utils/request' // ==================== 处方审核 ==================== export function auditPrescription(data) { - return request({ url: '/healthlink-his/api/v1/rational-drug/audit', method: 'post', data }) + return request({ url: '/api/v1/rational-drug/audit', method: 'post', data }) } export function batchAudit(prescriptionIds) { - return request({ url: '/healthlink-his/api/v1/rational-drug/batch-audit', method: 'post', data: prescriptionIds }) + return request({ url: '/api/v1/rational-drug/batch-audit', method: 'post', data: prescriptionIds }) } export function getAuditStatistics() { - return request({ url: '/healthlink-his/api/v1/rational-drug/statistics', method: 'get' }) + return request({ url: '/api/v1/rational-drug/statistics', method: 'get' }) } export function getAuditTrend(startDate) { - return request({ url: '/healthlink-his/api/v1/rational-drug/trend', method: 'get', params: { startDate } }) + return request({ url: '/api/v1/rational-drug/trend', method: 'get', params: { startDate } }) } export function getAuditLog(encounterId) { - return request({ url: `/healthlink-his/api/v1/rational-drug/audit-log/${encounterId}`, method: 'get' }) + return request({ url: `/api/v1/rational-drug/audit-log/${encounterId}`, method: 'get' }) } // ==================== 配伍禁忌 ==================== export function checkInteraction(drugCodes) { - return request({ url: '/healthlink-his/api/v1/rational-drug/check-interaction', method: 'post', data: drugCodes }) + return request({ url: '/api/v1/rational-drug/check-interaction', method: 'post', data: drugCodes }) } export function listInteractionRules(params) { - return request({ url: '/healthlink-his/api/v1/rational-drug/interaction-rules', method: 'get', params }) + return request({ url: '/api/v1/rational-drug/interaction-rules', method: 'get', params }) } export function addInteractionRule(data) { - return request({ url: '/healthlink-his/api/v1/rational-drug/interaction-rules', method: 'post', data }) + return request({ url: '/api/v1/rational-drug/interaction-rules', method: 'post', data }) } export function updateInteractionRule(data) { - return request({ url: '/healthlink-his/api/v1/rational-drug/interaction-rules', method: 'put', data }) + return request({ url: '/api/v1/rational-drug/interaction-rules', method: 'put', data }) } export function delInteractionRule(id) { - return request({ url: `/healthlink-his/api/v1/rational-drug/interaction-rules/${id}`, method: 'delete' }) + return request({ url: `/api/v1/rational-drug/interaction-rules/${id}`, method: 'delete' }) } // ==================== 剂量规则 ==================== export function listDosageRules(params) { - return request({ url: '/healthlink-his/api/v1/rational-drug/dosage-rules', method: 'get', params }) + return request({ url: '/api/v1/rational-drug/dosage-rules', method: 'get', params }) } export function checkDosage(drugCode, dosage, population) { - return request({ url: '/healthlink-his/api/v1/rational-drug/check-dosage', method: 'get', params: { drugCode, dosage, population } }) + return request({ url: '/api/v1/rational-drug/check-dosage', method: 'get', params: { drugCode, dosage, population } }) } diff --git a/healthlink-his-ui/src/api/rationaldrug/index.js b/healthlink-his-ui/src/api/rationaldrug/index.js index 9c2aa451e..e1b3e7ed5 100644 --- a/healthlink-his-ui/src/api/rationaldrug/index.js +++ b/healthlink-his-ui/src/api/rationaldrug/index.js @@ -3,7 +3,7 @@ import request from '@/utils/request' // 处方审核 export function auditPrescription(data) { return request({ - url: '/healthlink-his/api/v1/rational-drug/audit', + url: '/api/v1/rational-drug/audit', method: 'post', data: data }) @@ -12,7 +12,7 @@ export function auditPrescription(data) { // 批量审核 export function batchAudit(data) { return request({ - url: '/healthlink-his/api/v1/rational-drug/batch-audit', + url: '/api/v1/rational-drug/batch-audit', method: 'post', data: data }) @@ -21,7 +21,7 @@ export function batchAudit(data) { // 审核统计 export function getAuditStatistics() { return request({ - url: '/healthlink-his/api/v1/rational-drug/statistics', + url: '/api/v1/rational-drug/statistics', method: 'get' }) } @@ -29,7 +29,7 @@ export function getAuditStatistics() { // 审核趋势 export function getAuditTrend(params) { return request({ - url: '/healthlink-his/api/v1/rational-drug/trend', + url: '/api/v1/rational-drug/trend', method: 'get', params: params }) @@ -38,7 +38,7 @@ export function getAuditTrend(params) { // 审核记录 export function getAuditLog(encounterId) { return request({ - url: '/healthlink-his/api/v1/rational-drug/audit-log/' + encounterId, + url: '/api/v1/rational-drug/audit-log/' + encounterId, method: 'get' }) } @@ -46,7 +46,7 @@ export function getAuditLog(encounterId) { // 配伍禁忌检查 export function checkInteraction(data) { return request({ - url: '/healthlink-his/api/v1/rational-drug/check-interaction', + url: '/api/v1/rational-drug/check-interaction', method: 'post', data: data }) @@ -55,7 +55,7 @@ export function checkInteraction(data) { // 配伍禁忌规则列表 export function listInteractionRules(params) { return request({ - url: '/healthlink-his/api/v1/rational-drug/interaction-rules', + url: '/api/v1/rational-drug/interaction-rules', method: 'get', params: params }) @@ -64,7 +64,7 @@ export function listInteractionRules(params) { // 新增配伍禁忌规则 export function addInteractionRule(data) { return request({ - url: '/healthlink-his/api/v1/rational-drug/interaction-rules', + url: '/api/v1/rational-drug/interaction-rules', method: 'post', data: data }) @@ -73,7 +73,7 @@ export function addInteractionRule(data) { // 修改配伍禁忌规则 export function updateInteractionRule(data) { return request({ - url: '/healthlink-his/api/v1/rational-drug/interaction-rules', + url: '/api/v1/rational-drug/interaction-rules', method: 'put', data: data }) @@ -82,7 +82,7 @@ export function updateInteractionRule(data) { // 删除配伍禁忌规则 export function delInteractionRule(id) { return request({ - url: '/healthlink-his/api/v1/rational-drug/interaction-rules/' + id, + url: '/api/v1/rational-drug/interaction-rules/' + id, method: 'delete' }) } @@ -90,7 +90,7 @@ export function delInteractionRule(id) { // 剂量规则列表 export function listDosageRules(params) { return request({ - url: '/healthlink-his/api/v1/rational-drug/dosage-rules', + url: '/api/v1/rational-drug/dosage-rules', method: 'get', params: params }) diff --git a/healthlink-his-ui/src/views/charge/outpatientregistration/components/patientAddDialog.vue b/healthlink-his-ui/src/views/charge/outpatientregistration/components/patientAddDialog.vue index c4022fdac..8c4d31ea8 100755 --- a/healthlink-his-ui/src/views/charge/outpatientregistration/components/patientAddDialog.vue +++ b/healthlink-his-ui/src/views/charge/outpatientregistration/components/patientAddDialog.vue @@ -454,8 +454,58 @@ - - + + + + + + + + + + + + + + + + + + + + + + +