📄 settleprojectfilter.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 + -