⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 settleprojectfilter.java

📁 自动导入文件到数据库,用于无法实时入库,需要在特定时间大批量入库的程序
💻 JAVA
字号:
package com.onet.autobill.bill.convert;

import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import org.apache.log4j.Logger;

import com.onet.autobill.bill.common.ResourceCollect;
import com.onet.autobill.model.SettleProjectCmdInfo;
import com.onet.pojomsg.onetmsg3.SM_Base_Msg;
import com.onet.pojomsg.onetmsg3.SM_Constant;
import com.onet.pojomsg.onetmsg3.SM_Deliver_Msg;

public class SettleProjectFilter implements ConvertFilter {

	private static Logger logger = Logger.getLogger(SettleProjectFilter.class);

	private List<SettleProjectCmdInfo> settleProjectCmdInfoList;

	@Override
	public void convert(SM_Base_Msg baseMsg) throws Exception {
		if (settleProjectCmdInfoList == null) {
			logger.error("settleProjectCmdInfoList没有配置");
			return;
		}
		if (baseMsg.getCommandID() == SM_Constant.TYPE_SM_DELIVER) {
			SM_Deliver_Msg deliver = (SM_Deliver_Msg) baseMsg;
			if(deliver.getIsReply()==1){
				return;
			}
			SettleProjectCmdInfo settleProjectCmdInfo = getSettleProjectCmdInfo(
					String.valueOf(deliver.getGateWayId()), getDestTermId(deliver
							.getDestTermId()), deliver.getMsgContent());
			 if(settleProjectCmdInfo!=null){
				 deliver.putAppendageField("ProjCmdId", String.valueOf(settleProjectCmdInfo.getCmdId()));
			 }
		}
	}

	private SettleProjectCmdInfo getSettleProjectCmdInfo(String gatewayId,
			String destTermId, String msgContent) {

		for (SettleProjectCmdInfo settleProjectCmdInfo : settleProjectCmdInfoList) {
			Pattern contentPattern = Pattern.compile(settleProjectCmdInfo
					.getCmdContent().toLowerCase(), Pattern.DOTALL);
			Matcher contentMatcher = contentPattern.matcher(msgContent
					.toLowerCase());
			if (Pattern.matches(String.valueOf(settleProjectCmdInfo
					.getGatewayId()), gatewayId)
					&& Pattern.matches(settleProjectCmdInfo.getDestermNum(),
							destTermId) && contentMatcher.matches()) {

				return settleProjectCmdInfo;

			}
		}

		return null;
	}

	private String getDestTermId(String destTermId) {
		String rvalue = destTermId;
		if (destTermId.charAt(0) == '0') {
			if (rvalue.length() >= 5) {
				rvalue = rvalue.substring(5);
			}
		} else if (destTermId.startsWith("106")) {
			if (rvalue.length() >= 8) {
				rvalue = rvalue.substring(8);
			}
		} else {
			if (rvalue.length() >= 4) {
				rvalue = rvalue.substring(4);
			}
		}
		return rvalue.trim();
	}

	@Override
	public void initResource(ResourceCollect resourceCollect) {
		this.settleProjectCmdInfoList = resourceCollect
				.getSettleProjectCmdInfoList();

	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -