完成发送代码,开始编写查询和清理已发送数据的代码。
This commit is contained in:
		@@ -41,6 +41,8 @@ public class CpicximToXMNHS
 | 
			
		||||
 | 
			
		||||
        Vector<HmbXyxInfo> items = new Vector<HmbXyxInfo>();
 | 
			
		||||
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        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;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										34
									
								
								code/sql/HmbXyxInfo.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								code/sql/HmbXyxInfo.sql
									
									
									
									
									
										Normal file
									
								
							@@ -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;
 | 
			
		||||
							
								
								
									
										11
									
								
								code/sql/触发器.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								code/sql/触发器.txt
									
									
									
									
									
										Normal file
									
								
							@@ -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
 | 
			
		||||
		Reference in New Issue
	
	Block a user