From 8e8f06717ef61347223e1550e2daedaceaa43582 Mon Sep 17 00:00:00 2001 From: Kane Wang Date: Thu, 20 Mar 2025 17:07:23 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=9D=E5=AD=98=E8=BF=9B=E5=BA=A6=EF=BC=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- code/cpicxim-huixiabao/pom.xml | 6 ++ .../xim/huixiabao/db/HuixiabaoDbUtils.java | 44 +++++++-------- .../MediCover/MediCoverController.java | 56 +++++++++++++++---- 3 files changed, 70 insertions(+), 36 deletions(-) diff --git a/code/cpicxim-huixiabao/pom.xml b/code/cpicxim-huixiabao/pom.xml index 96d1b00..36758dd 100644 --- a/code/cpicxim-huixiabao/pom.xml +++ b/code/cpicxim-huixiabao/pom.xml @@ -129,6 +129,12 @@ ${jackson.version} + + com.mysql + mysql-connector-j + 9.2.0 + + diff --git a/code/cpicxim-huixiabao/src/main/java/com/cpic/xim/huixiabao/db/HuixiabaoDbUtils.java b/code/cpicxim-huixiabao/src/main/java/com/cpic/xim/huixiabao/db/HuixiabaoDbUtils.java index 4021fcb..134ecee 100644 --- a/code/cpicxim-huixiabao/src/main/java/com/cpic/xim/huixiabao/db/HuixiabaoDbUtils.java +++ b/code/cpicxim-huixiabao/src/main/java/com/cpic/xim/huixiabao/db/HuixiabaoDbUtils.java @@ -1,11 +1,12 @@ /** - * @Author: Kane - * @Date: 2025-03-17 14:52:06 -* @LastEditors: Kane -* @FilePath: /cpicxim-huixiabao/src/main/java/com/cpic/xim/huixiabao/db/HuixiabaoDbUtils.java + * @Author: Kane Wang + * @Date: 2025-03-17 19:03:17 + * @LastEditors: Kane + * @LastModified: 2025-03-20 10:49:49 + * @FilePath: /cpicxim-huixiabao/src/main/java/com/cpic/xim/huixiabao/db/HuixiabaoDbUtils.java * @Description: * - * Copyright (c) ${2023} by Kane, All Rights Reserved. + * Copyright (c) 2025 by Kane All rights reserved */ package com.cpic.xim.huixiabao.db; @@ -26,14 +27,15 @@ public class HuixiabaoDbUtils private static Logger logger = LoggerFactory.getLogger( HuixiabaoDbUtils.class ); public static void saveHmbXyxInfoToMysql( Vector xyxInfo ) - throws ClassNotFoundException + throws ClassNotFoundException, + SQLException { Connection connection = null; PreparedStatement statementDelete = null; PreparedStatement statementInsert = null; String sqlDelete = """ - delete from HmbXyxInfo where xyxNo = ?" + delete from HmbXyxInfo where xyxNo = ? """; String sqlInsert = """ insert into HmbXyxInfo( psnName, certno, serviceId, status, xyxNo ) @@ -47,32 +49,24 @@ public class HuixiabaoDbUtils connection = DriverManager.getConnection( AppConfig.getUrltest(), AppConfig.getUsername(), AppConfig.getPassword() ); - statementDelete = connection.prepareStatement( sqlDelete ); - statementInsert = connection.prepareStatement( sqlInsert ); + statementDelete = connection.prepareStatement( sqlDelete.trim() ); + statementInsert = connection.prepareStatement( sqlInsert.trim() ); - for ( HmbXyxInfoItem item: xyxInfo ) + for ( HmbXyxInfoItem item : xyxInfo ) { logger.info( "写入记录{<>}", item.getXyxNo() ); - statementDelete.setString(1, item.getXyxNo() ); - statementInsert.setString(1, item.getPsnName() ); - statementInsert.setString(2, item.getCertno() ); - statementInsert.setString(3, item.getServiceId() ); - statementInsert.setString(4, item.getStatus() ); - statementInsert.setString(5, item.getXyxNo() ); - + statementDelete.setString( 1, item.getXyxNo() ); + statementInsert.setString( 1, item.getPsnName() ); + statementInsert.setString( 2, item.getCertno() ); + statementInsert.setString( 3, item.getServiceId() ); + statementInsert.setString( 4, item.getStatus() ); + statementInsert.setString( 5, item.getXyxNo() ); + statementDelete.execute(); statementInsert.execute(); } } - catch ( ClassNotFoundException error ) - { - logger.error("加载mysql驱动失败:{<>}", error.getMessage() ); - } - catch ( SQLException error ) - { - logger.error("执行sql失败:{<>}", error.getMessage() ); - } finally { if ( statementDelete != null ) diff --git a/code/cpicxim-huixiabao/src/main/java/com/cpic/xim/huixiabao/web/controllers/MediCover/MediCoverController.java b/code/cpicxim-huixiabao/src/main/java/com/cpic/xim/huixiabao/web/controllers/MediCover/MediCoverController.java index cdd0c0a..f9eddce 100644 --- a/code/cpicxim-huixiabao/src/main/java/com/cpic/xim/huixiabao/web/controllers/MediCover/MediCoverController.java +++ b/code/cpicxim-huixiabao/src/main/java/com/cpic/xim/huixiabao/web/controllers/MediCover/MediCoverController.java @@ -1,9 +1,9 @@ /** * @Author: Kane Wang * @Date: 2025-03-15 18:40:54 - * @LastEditors: Kane Wang + * @LastEditors: Kane * @LastModified: 2025-03-16 08:59:16 - * @FilePath: src/main/java/com/cpic/xim/huixiabao/web/controllers/MediCover/MediCoverController.java + * @FilePath: /cpicxim-huixiabao/src/main/java/com/cpic/xim/huixiabao/web/controllers/MediCover/MediCoverController.java * @Description: * * Copyright (c) 2025 by Kane All rights reserved @@ -19,11 +19,16 @@ import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.web.bind.annotation.PostMapping; + +import java.sql.SQLException; + import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.cpic.xim.utils.secrecy.*; import com.cpic.xim.huixiabao.web.data.nhs.xyx.HmbXyxInfo; +import com.cpic.xim.huixiabao.web.data.nhs.xyx.HmbXyxInfoItem; +import com.cpic.xim.huixiabao.db.HuixiabaoDbUtils; @Controller @@ -58,27 +63,56 @@ public class MediCoverController try { xyxInfo = jsonMapper.readValue( decryptData, HmbXyxInfo.class ); + + HuixiabaoDbUtils.saveHmbXyxInfoToMysql( xyxInfo.getHmbList() ); + } + catch ( ClassNotFoundException error ) + { + logger.error( "加载mysql驱动失败:{}", error.getMessage() ); + + // 解析json错误。通知调用者 + response = new MediCoverResponse( "500", + "加载mysql驱动失败:" + error.getMessage(), + "", + "", + "", + false ); + } + catch ( SQLException error ) + { + // 执行sql错误。通知调用者 + logger.error( "执行sql失败:{}", error.getMessage() ); + + response = new MediCoverResponse( "500", + "执行sql失败:" + error.getMessage(), + "", + "", + "", + false ); } catch ( Exception error ) { // 解析json错误。通知调用者 response = new MediCoverResponse( "500", - "解析JSON失败:" + error.getMessage(), + "解析JSON失败:{}" + error.getMessage(), "", "", "", false ); - return response; } - // 处理成功 - response = new MediCoverResponse( "20000", - "处理成功", - "", - "", - "", - true ); + + if ( response == null ) + { + // 处理成功 + response = new MediCoverResponse( "20000", + "处理成功", + "", + "", + "", + true ); + } return response; }