From f64cac1c219b1b149c6fc3bcbdaf9bff8f317fb8 Mon Sep 17 00:00:00 2001 From: Kane Wang Date: Wed, 12 Mar 2025 11:13:37 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E5=8F=91=E9=80=81=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=EF=BC=8C=E5=BC=80=E5=A7=8B=E7=BC=96=E5=86=99=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E5=92=8C=E6=B8=85=E7=90=86=E5=B7=B2=E5=8F=91=E9=80=81?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E7=9A=84=E4=BB=A3=E7=A0=81=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xim/huixiabao/nhs/CpicximToXMNHS.java | 50 ++++++++++++++++--- code/sql/HmbXyxInfo.sql | 34 +++++++++++++ code/sql/触发器.txt | 11 ++++ 3 files changed, 89 insertions(+), 6 deletions(-) create mode 100644 code/sql/HmbXyxInfo.sql create mode 100644 code/sql/触发器.txt diff --git a/code/cpicxim-XMNHSA-repeater/src/main/java/com/cpic/xim/huixiabao/nhs/CpicximToXMNHS.java b/code/cpicxim-XMNHSA-repeater/src/main/java/com/cpic/xim/huixiabao/nhs/CpicximToXMNHS.java index 848150a..d47d81c 100644 --- a/code/cpicxim-XMNHSA-repeater/src/main/java/com/cpic/xim/huixiabao/nhs/CpicximToXMNHS.java +++ b/code/cpicxim-XMNHSA-repeater/src/main/java/com/cpic/xim/huixiabao/nhs/CpicximToXMNHS.java @@ -41,6 +41,8 @@ public class CpicximToXMNHS Vector items = new Vector(); + + return items; } @@ -70,20 +72,56 @@ public class CpicximToXMNHS // 数据 JSONObject requestObject = new JSONObject(); - JSONObject xyxInfo = new JSONObject(); + JSONObject xyxInfo = null; JSONArray xyxInfoList = new JSONArray(); requestObject.put( "topic", "hmbXyxInfo" ); - requestObject.put( "hmbList", xyxInfoList ); - int count = 0; // 计数,每个请求不能超过500条 + int request_count = 0; // 计数,每个请求不能超过500条 + int total_count = 0; for ( HmbXyxInfo info : items ) { - if ( count >= HuixiabaoConfig.getMAX_COUNT_PER_REQUEST() - 1 ) - { - // 达到上限,将当前数据送出 + xyxInfo = new JSONObject(); + xyxInfo.put( "psnName", info.getPsnName() ); + xyxInfo.put( "cerno", info.getCertNo() ); + xyxInfo.put( "serviceId", info.getServiceId() ); + xyxInfo.put( "status", info.getStatus() ); + xyxInfo.put( "xyxNo", info.getXyxNo() ); + + xyxInfoList.add( xyxInfo ); + + request_count++; + total_count++; + + logger.info( "准备数据:" + xyxInfo.toJSONString() ); + + if ( request_count >= HuixiabaoConfig.getMAX_COUNT_PER_REQUEST() - 1 || total_count == items.size() ) + { + // 达到上限,或者记录已经全部处理,将当前生成的数据送出 + requestObject.remove( "hmbList" ); + requestObject.put( "hmbList", xyxInfoList ); + + try + { + req.setData( requestObject ); + resp = client.execute( req ); + + logger.info( "发送成功,返回消息:" + resp.getData() ); + + // 将已发送的数据从update表中清理掉 + } + catch ( ZephyrApiException error ) + { + // 发送不成功,记录日志 + // 失败的数据就留在update表中,待以后重新发送 + logger.error( error.getMessage() ); + } + + // 清理清单,重置计数 + xyxInfoList.clear(); + request_count = 0; } } } diff --git a/code/sql/HmbXyxInfo.sql b/code/sql/HmbXyxInfo.sql new file mode 100644 index 0000000..d261241 --- /dev/null +++ b/code/sql/HmbXyxInfo.sql @@ -0,0 +1,34 @@ +/* + Navicat Premium Data Transfer + + Source Server : mysql - 10.39.0.85 + Source Server Type : MySQL + Source Server Version : 90200 + Source Host : 10.39.0.85:3306 + Source Schema : huixiabao + + Target Server Type : MySQL + Target Server Version : 90200 + File Encoding : 65001 + + Date: 12/03/2025 09:14:18 +*/ + +SET NAMES utf8mb4; +SET FOREIGN_KEY_CHECKS = 0; + +-- ---------------------------- +-- Table structure for HmbXyxInfo +-- ---------------------------- +DROP TABLE IF EXISTS `HmbXyxInfo`; +CREATE TABLE `HmbXyxInfo` ( + `hmbListIndex` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT 'hmbList的索引,由timestamp和hmbList的hash值组成。', + `psnName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '姓名', + `certno` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '证件号', + `serviceId` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '服务id', + `status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '订单状态', + `xyxNo` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '主键id', + PRIMARY KEY (`xyxNo`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = 'HmbXyxInfo的子表。\r\n保存hmbList集合的元素。' ROW_FORMAT = Dynamic; + +SET FOREIGN_KEY_CHECKS = 1; diff --git a/code/sql/触发器.txt b/code/sql/触发器.txt new file mode 100644 index 0000000..2fd7eb9 --- /dev/null +++ b/code/sql/触发器.txt @@ -0,0 +1,11 @@ +drop TRIGGER xyxinfo_update; +CREATE TRIGGER xyxinfo_update BEFORE INSERT ON huixiabao.HmbXyxInfo FOR EACH ROW +BEGIN + delete from huixiabao.HmbXyxInfo_Update u where u.xyxNo = NEW.xyxNo; + INSERT INTO huixiabao.HmbXyxInfo_Update ( xyxNo, update_time ) + VALUES + ( + new.xyxNo, + SYSDATE()); + +END \ No newline at end of file