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.Bdgzcl 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.constants.UtilConst;
//import cn.benma666.exception.FieldRuleVerifyException;
//import org.pentaho.di.trans.steps.easyexpand.EasyExpandRunBase;
//import cn.benma666.myutils.FieldRuleTrans;
//import cn.benma666.myutils.FieldRuleVerify;
//import cn.benma666.myutils.JsonResult;
//import cn.benma666.myutils.StringUtil;
//import com.alibaba.fastjson.JSON;
//import com.alibaba.fastjson.JSONObject;
//import org.pentaho.di.core.row.RowMetaInterface;
//import org.pentaho.di.core.row.ValueMeta;
//import org.pentaho.di.core.variables.VariableSpace;
//import org.pentaho.di.trans.TransMeta;
//import org.pentaho.di.trans.step.StepMeta;
//
//import java.util.List;
//
///**
// * 比对核查-比对规则处理
// * @author jingma
// * @version
// */
//public class Bdgzcl extends EasyExpandRunBase{
//
// /**
// * 具体处理每一行数据
// * @return
// * @see cn.benma666.kettle.steps.easyexpand.EasyExpandRunBase#dispose(Object[])
// */
// @Override
// protected JsonResult dispose(Object[] outputRow) throws Exception{
// JSONObject hm = (JSONObject)outputRow[getFieldIndex("HMOBJ")];
// JSONObject zy = (JSONObject)outputRow[getFieldIndex("ZYOBJ")];
// outputRow[getFieldIndex("HMOBJ")] = "";
// outputRow[getFieldIndex("ZYOBJ")] = "";
// outputRow[getFieldIndex("YXX")] = bdgz(hm,zy,outputRow)?
// UtilConst.WHETHER_TRUE:UtilConst.WHETHER_FALSE;
// return success("ok");
// }
// /**
// * 比对规则
// * @author jingma
// * @param hm 号码信息
// * @param zy 资源信息
// * @param outputRow 输出数据数组,字段的jg.开头的字段及对应该数据
// * @return 是否推送
// */
// private boolean bdgz(JSONObject hm, JSONObject zy,Object[] outputRow) {
// List xggzList = BdhcUtil.bdhcDb.find("bdhc.selectHmxggz", hm);
// if(xggzList.size()==0){
// //没有匹配的规则
// return true;
// }
// JSONObject ppgz = gzpp(hm, outputRow, xggzList);
// outputRow[getFieldIndex("PPGZ")] = StringUtil.join(ppgz.values(), ",");
// boolean isSc = zhgz(hm, outputRow, xggzList, ppgz);
// return isSc;
// }
// /**
// * 转换规则,字段属性值会按规则进行转换
// * 从优先级低到高进行转换,高等级转换是建立在等级转换的基础上的,高等级转换会覆盖低等级转换
// * @author jingma
// * @param hm
// * @param outputRow
// * @param xggzList
// * @param ppgz
// * @return 是否输出
// */
// public boolean zhgz(JSONObject hm, Object[] outputRow,
// List xggzList, JSONObject ppgz) {
// boolean isSc = true;
// for(int i=xggzList.size()-1;i>-1;i--){
// JSONObject xggz = xggzList.get(i);
// if(!ppgz.containsValue(xggz.getString("id"))){
// //不属于匹配上的规则跳过
// continue;
// }
// //是否输出判断
// if(UtilConst.WHETHER_FALSE.equals(xggz.getString("sfsc"))){
// isSc = false;
// }else if(UtilConst.WHETHER_TRUE.equals(xggz.getString("sfsc"))){
// isSc = true;
// }
//
// //字段修改
// if(StringUtil.isBlank(xggz.getString("sjzd"))){
// //没有配置字段信息
// continue;
// }
// String value = getValByGzzd(hm, outputRow, xggz);
// value = FieldRuleTrans.ruleTrans(value, xggz);
// if(xggz.getString("sjzd").startsWith("jg.")){
// outputRow[getFieldIndex(xggz.getString("sjzd").substring(3))]=value;
// }else{
// //号码对象的修改已经无意义,无后续使用
// hm.put(xggz.getString("sjzd").substring(3),value);
// }
// }
// return isSc;
// }
// /**
// * 规则匹配
// * 筛选出匹配的规则,每个级别只匹配一条规则
// * @author jingma
// * @param hm
// * @param outputRow
// * @param xggzList
// * @return 匹配成功的规则
// */
// public JSONObject gzpp(JSONObject hm, Object[] outputRow,
// List xggzList) {
// //当前规则
// String dqgz = xggzList.get(0).getString("id");
// //当前规则等级
// String dqgzdj = xggzList.get(0).getString("dj");
// //当前规则有效
// boolean dqgzyx = true;
// //匹配规则<等级,规则主键>
// JSONObject ppgz = new JSONObject(true);
// for(JSONObject xggz:xggzList){
// if((!dqgzyx&&dqgz.equals(xggz.getString("id")))){
// //(当前规则无效且属于同一规则)
// continue;
// }
// if(!dqgz.equals(xggz.getString("id"))){
// //下一条规则
// if(dqgzyx&&!ppgz.containsKey(dqgzdj)){
// //上一条规则匹配成功,且该等级第一条匹配规则,同等级其他规则跳过
// ppgz.put(dqgzdj, dqgz);
// }
//
// //信息设置为新规则
// dqgz = xggz.getString("id");
// dqgzdj = xggz.getString("dj");
// dqgzyx = true;
// }
// if(ppgz.containsKey(dqgzdj)||StringUtil.isBlank(xggz.getString("sjzd"))){
// //该等级已经有匹配的规则或没有配置字段信息
// continue;
// }
// //获取对应的字段值
// String value = getValByGzzd(hm, outputRow, xggz);
// try {
// FieldRuleVerify.ruleVerify(value, xggz);
// } catch (FieldRuleVerifyException e) {
// dqgzyx = false;
// } catch (Exception e) {
// ku.logError("当前验证出错:"+xggz+",hm:"+hm,e);
// }
// }
// //最后一条规则处理
// if(dqgzyx&&!ppgz.containsKey(dqgzdj)){
// //上一条规则匹配成功,且该等级第一条匹配规则,同等级其他规则跳过
// ppgz.put(dqgzdj, dqgz);
// }
// return ppgz;
// }
// public String getValByGzzd(JSONObject hm, Object[] outputRow,
// JSONObject xggz) {
// String value = null;
// if(xggz.getString("sjzd").startsWith("jg.")){
// Object obj = outputRow[getFieldIndex(xggz.getString("sjzd").substring(3))];
// value = obj==null?"":obj+"";
// }else{
// value = hm.getString(xggz.getString("sjzd").substring(3));
// }
// return value;
// }
// /**
// *
// * @see cn.benma666.kettle.steps.easyexpand.EasyExpandRunBase#init()
// */
// @Override
// protected void init() {
// }
// /**
// *
// * @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);
// }
//
// @SuppressWarnings("deprecation")
// public void getFields(RowMetaInterface r, String origin, RowMetaInterface[] info, StepMeta nextStep,
// VariableSpace space) {
// //修改对象的字段类型为字符串,不然后续步骤会产生些问题。
// r.getValueMeta(r.indexOfValue("HMOBJ")).setType(ValueMeta.TYPE_STRING);
// r.getValueMeta(r.indexOfValue("ZYOBJ")).setType(ValueMeta.TYPE_STRING);
// //添加输出到下一步的字段
// tjzd(r,"YXX",ValueMeta.TYPE_STRING,ValueMeta.TRIM_TYPE_BOTH,origin,"有效性");
// tjzd(r,"PPGZ",ValueMeta.TYPE_STRING,ValueMeta.TRIM_TYPE_BOTH,origin,"匹配规则");
// }
//}