All Downloads are FREE. Search and download functionalities are using the official Maven repository.
Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
cn.benma666.sjsj.job.bdhc.ZlbdHmbd Maven / Gradle / Ivy
///**
//* Project Name:KettleUtil
//* Date:2016年6月29日
//* Copyright (c) 2016, jingma All Rights Reserved.
//*/
//
//package cn.benma666.sjsj.job.bdhc;
//
//import cn.benma666.kettle.mytuils.Db;
//import org.pentaho.di.trans.steps.easyexpand.EasyExpandRunBase;
//import cn.benma666.myutils.JsonResult;
//import cn.benma666.web.WebInitInterface;
//import com.alibaba.fastjson.JSON;
//import com.alibaba.fastjson.JSONObject;
//import org.beetl.sql.core.OnConnection;
//import org.beetl.sql.core.SQLManager;
//import org.pentaho.di.core.row.RowMetaInterface;
//import org.pentaho.di.core.row.ValueMeta;
//import org.pentaho.di.core.row.ValueMetaInterface;
//import org.pentaho.di.core.variables.VariableSpace;
//import org.pentaho.di.trans.TransMeta;
//import org.pentaho.di.trans.step.StepMeta;
//
//import javax.servlet.ServletContext;
//import java.sql.*;
//import java.util.HashMap;
//import java.util.List;
//import java.util.Map;
//
///**
// * 比对核查-增量比对-号码比对
// * 注意性能优化,本系统考虑十亿级比对号码支持
// * date: 2016年6月29日
// * @author jingma
// * @version
// */
//public class ZlbdHmbd extends EasyExpandRunBase implements WebInitInterface{
// /**
// * 比对号码缓存<比对号码,对应备用信息>,初始化全量加载,之后定时增量追加
// * 当比中后没有查询到该比对号码对应的号码信息时则移除该号码。
// */
// public static Map bhhmMap = new HashMap();
//
// /**
// * 具体处理每一行数据
// * @return
// * @see cn.benma666.kettle.steps.easyexpand.EasyExpandRunBase#dispose(Object[])
// */
// @Override
// protected JsonResult dispose(Object[] outputRow) throws Exception{
// if(bhhmMap.containsKey(inputRow[ku.getInputRowMeta().indexOfValue("BDHM")])){
// RowMetaInterface irm = ku.getInputRowMeta();
// JSONObject zy = new JSONObject(100);
// for(int i=0;i hms = BdhcUtil.bdhcDb.find("bdhc.selectHmByHchm",
// Db.buildMap(h.getString(BdhcUtil.FIELD_HCZJLX),h.getString(BdhcUtil.FIELD_HCZJHM)));
// if(hms.isEmpty()){
// //该比对号码没有对应的比对号码了,移除该比对号码
// bhhmMap.remove(zy.getString("bdhm"));
// ku.logBasic("该比对号码已无效,移除比对号码:"+h);
// }
// //逐个处理比中的比对号码,每个号码生成条比对记录
// for(JSONObject hm:hms){
// if(!BdhcUtil.isZy(getVariavle("HCFS"), getVariavle("ZYLB"), hm)){
// continue;
// }
// Object[] or1 = new Object[2];
// or1[getFieldIndex("HMOBJ")] = hm;
// or1[getFieldIndex("ZYOBJ")] = zy.clone();
// ku.putRow(data.outputRowMeta, or1);
// }
// }
// return success("99");
// }
// /**
// *
// * @see cn.benma666.kettle.steps.easyexpand.EasyExpandRunBase#init()
// */
// @Override
// protected void init() {
// if(bhhmMap.isEmpty()){
// init(null);
// }
// }
// /**
// *
// * @see cn.benma666.kettle.steps.easyexpand.EasyExpandRunBase#end()
// */
// @Override
// protected void end() {
// ku.logBasic("数据处理结束");
// }
//
// /**
// *
// * @see cn.benma666.kettle.steps.easyexpand.EasyExpandRunBase#getDefaultConfigInfo(org.pentaho.di.trans.TransMeta, String)
// */
// @Override
// public String getDefaultConfigInfo(TransMeta transMeta, String stepName) throws Exception{
// //创建一个JSON对象,用于构建配置对象,避免直接拼字符串构建JSON字符串
// JSONObject params = new JSONObject();
// //返回格式化后的默认JSON配置参数,供使用者方便快捷的修改配置
// return JSON.toJSONString(params, true);
// }
//
// public void getFields(RowMetaInterface r, String origin, RowMetaInterface[] info, StepMeta nextStep, VariableSpace space) {
// //添加输出到下一步的字段
// r.clear();
// tjzd(r,"HMOBJ",ValueMeta.TYPE_NONE,
// ValueMeta.TRIM_TYPE_NONE,origin,"号码对象");
// tjzd(r,"ZYOBJ",ValueMeta.TYPE_NONE,
// ValueMeta.TRIM_TYPE_NONE,origin,"资源对象");
// }
// /**
// * 比对系统启动时执行,可以配置为早于作业启动,从而可以做一些要求在作业启动前的初始化工作。
// * @see cn.benma666.web.WebInitInterface#init(ServletContext)
// */
// @Override
// public void init(ServletContext arg0) {
// log.info("开始加载比对号码缓存数据");
// BdhcUtil.bdhcDb = Db.use("bdhc_default");
// final SQLManager sm = BdhcUtil.bdhcDb.getSqlManager();
// sm.executeOnConnection(new OnConnection>() {
// @Override
// public Map call(Connection conn) throws SQLException {
// Statement st = conn.createStatement();
// ResultSet rs = st.executeQuery(sm.getSQLResult("bdhc.selectHmBdhm",null).jdbcSql);
// ResultSetMetaData md = rs.getMetaData();
// int colNum = md.getColumnCount();
// rs.next();
// //key值有序
// JSONObject hmyl = new JSONObject(true);
// //先获取字段信息,避免持续的字段获取及转换操作,以提供性能
// for(int i=1;i<=colNum;i++){
// hmyl.put(md.getColumnName(i).toLowerCase(), rs.getObject(i));
// }
// bhhmMap.put(hmyl.getString(BdhcUtil.FIELD_HCZJLX)+"_"+hmyl.getString(BdhcUtil.FIELD_HCZJHM), hmyl);
// log.info("1-号码加载样例:"+hmyl);
// int row = 2;
// JSONObject r = null;
// int i = 1;
// while(rs.next()){
// r = new JSONObject();
// i = 1;
// for(String key:hmyl.keySet()){
// r.put(key, rs.getObject(i++));
// }
// //以后可以考虑将比对号码对应的全部号码存在value中,但因为比中毕竟是少数,所以暂时不考虑
// bhhmMap.put(r.getString(BdhcUtil.FIELD_HCZJLX)+"_"+r.getString(BdhcUtil.FIELD_HCZJHM), r);
// log.debug((row++)+"-每行号码信息:"+r);
// }
// rs.close();
// st.close();
// return bhhmMap;
// }
// });
// log.info("结束加载比对号码缓存数据,共计号码数:"+bhhmMap.size());
// }
//}