完成发送代码,开始编写查询和清理已发送数据的代码。
This commit is contained in:
		@@ -41,6 +41,8 @@ public class CpicximToXMNHS
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        Vector<HmbXyxInfo> items = new Vector<HmbXyxInfo>();
 | 
					        Vector<HmbXyxInfo> items = new Vector<HmbXyxInfo>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return items;
 | 
					        return items;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -70,20 +72,56 @@ public class CpicximToXMNHS
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        // 数据
 | 
					        // 数据
 | 
				
			||||||
        JSONObject requestObject = new JSONObject();
 | 
					        JSONObject requestObject = new JSONObject();
 | 
				
			||||||
        JSONObject xyxInfo       = new JSONObject();
 | 
					        JSONObject xyxInfo       = null;
 | 
				
			||||||
        JSONArray  xyxInfoList   = new JSONArray();
 | 
					        JSONArray  xyxInfoList   = new JSONArray();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        requestObject.put( "topic", "hmbXyxInfo" );
 | 
					        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 )
 | 
					        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