浏览代码

代码同步

longht 4 年之前
父节点
当前提交
5f704eab9d

+ 1 - 0
.classpath

@@ -6,6 +6,7 @@
 	<classpathentry kind="src" path="src/test"/>
 	<classpathentry kind="src" path="src/test"/>
 	<classpathentry kind="src" path="META-INF"/>
 	<classpathentry kind="src" path="META-INF"/>
 	<classpathentry kind="src" path="METADATA"/>
 	<classpathentry kind="src" path="METADATA"/>
+	<classpathentry kind="src" path="script"/>
 	<classpathentry exported="true" kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
 	<classpathentry exported="true" kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
 	<classpathentry exported="true" kind="con" path="com.yonyou.studio.udt.core.container/Ant_Library"/>
 	<classpathentry exported="true" kind="con" path="com.yonyou.studio.udt.core.container/Ant_Library"/>
 	<classpathentry exported="true" kind="con" path="com.yonyou.studio.udt.core.container/Framework_Library"/>
 	<classpathentry exported="true" kind="con" path="com.yonyou.studio.udt.core.container/Framework_Library"/>

+ 10 - 1
META-INF/PubDevTool.upm

@@ -1,10 +1,19 @@
 <?xml version='1.0' encoding='UTF-8'?>
 <?xml version='1.0' encoding='UTF-8'?>
 <module name="PubDevToolEJB">
 <module name="PubDevToolEJB">
 	<public>
 	<public>
-		 <component priority="0" singleton="true" remote="true" tx="CMT" supportAlias="true">
+		
+	 <!--ExcelAnalizy-->
+	    <component priority="0" singleton="true" remote="true" tx="CMT" supportAlias="true">
 		      <interface>nc.itf.pubdev.pubtool.filetool.IDevFileGainTool</interface>
 		      <interface>nc.itf.pubdev.pubtool.filetool.IDevFileGainTool</interface>
 		      <implementation>nc.impl.pubdev.pubtool.filetool.DevFileGainToolimpl</implementation>
 		      <implementation>nc.impl.pubdev.pubtool.filetool.DevFileGainToolimpl</implementation>
 	      </component>
 	      </component>
+	      
+	      
+	      <!--NCDEVLOGSERVER-->
+        <component remote="true" singleton="true" tx="CMT">
+            <interface>nc.itf.pubdev.pubtool.logserver.IDevExecLogServer_RequiresNew</interface>
+            <implementation>nc.impl.pubtool.logserver.DevExecLogServer_RequiresNewimpl</implementation>
+        </component> 
 	</public>
 	</public>
 	<private>
 	<private>
 	</private>
 	</private>

+ 50 - 0
script/1creattable.sql

@@ -0,0 +1,50 @@
+
+create table SM_NCDEVEXECLOG
+(
+  pk_log          CHAR(20) not null,
+  src_pk_billtype VARCHAR2(50),
+  src_pk_billname VARCHAR2(50),
+  src_pk_bill     VARCHAR2(50),
+  operation       VARCHAR2(200),
+  senddata        CLOB,
+  resultinfo      CLOB,
+  errorinfo       CLOB,
+  issuccess       CHAR(1),
+  def1            VARCHAR2(100),
+  def2            VARCHAR2(100),
+  def3            VARCHAR2(100),
+  def4            VARCHAR2(100),
+  def5            VARCHAR2(100),
+  def6            VARCHAR2(100),
+  def7            VARCHAR2(100),
+  def8            VARCHAR2(100),
+  def9            VARCHAR2(100),
+  ts              CHAR(19)  DEFAULT to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),
+  dr              INTEGER DEFAULT 0
+);
+
+
+create table SM_DevFileDownLOG
+(
+  pk_log          CHAR(20) not null,
+  filename VARCHAR2(512),
+  downdate VARCHAR2(19),
+  Downtype VARCHAR2(50),
+  filetype      VARCHAR2(200),
+  operation       VARCHAR2(200),
+  senddata        CLOB,
+  resultinfo      CLOB,
+  errorinfo       CLOB,
+  issuccess       CHAR(1),
+  def1            VARCHAR2(100),
+  def2            VARCHAR2(100),
+  def3            VARCHAR2(100),
+  def4            VARCHAR2(100),
+  def5            VARCHAR2(100),
+  def6            VARCHAR2(100),
+  def7            VARCHAR2(100),
+  def8            VARCHAR2(100),
+  def9            VARCHAR2(100),
+  ts              CHAR(19)  DEFAULT to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),
+  dr              INTEGER DEFAULT 0
+);

+ 80 - 0
src/private/nc/impl/pubtool/logserver/DevExecLogServer_RequiresNewimpl.java

@@ -0,0 +1,80 @@
+package nc.impl.pubtool.logserver;
+
+import nc.bs.dao.BaseDAO;
+import nc.bs.logging.Logger;
+import nc.itf.pubdev.pubtool.logserver.IDevExecLogServer_RequiresNew;
+import nc.vo.pub.BusinessException;
+import nc.vo.pub.lang.UFBoolean;
+import nc.vo.pub.pubtool.logserver.NCDevExecLogVO;
+import nc.vo.pub.pubtool.logserver.NCFileDownLogVO;
+
+public class DevExecLogServer_RequiresNewimpl implements
+		IDevExecLogServer_RequiresNew {
+
+	public boolean insertLog_RequiresNew(UFBoolean isSuccess, String operation,
+			String resultInfo, String errorInfo, String sendData,
+			String billId, String billType, String billName)
+			throws BusinessException {
+		// TODO Auto-generated method stub
+		try {
+			Logger.debug("==============enter method insertLog_RequiresNew ========");
+			long spendtime = System.currentTimeMillis();
+			Logger.debug("执行 日志写入操作 start time:--- " + System.currentTimeMillis());
+			
+			NCDevExecLogVO logVO = new NCDevExecLogVO();
+			logVO.setIssuccess(isSuccess);// 是否成功
+			logVO.setOperation(operation);// 操作
+			logVO.setResultinfo(resultInfo);// 结果信息
+			logVO.setErrorinfo(errorInfo);// 异常信息
+			logVO.setSenddata(sendData);// 发送的数据
+			logVO.setSrc_pk_billtype(billType);// 所属单据编码
+			logVO.setSrc_pk_billname(billName);// 所属单据名称
+			logVO.setSrc_pk_bill(billId);// 单据主键
+			new BaseDAO().insertVO(logVO);
+			Logger.debug("执行 日志写入操作 end  耗时 : "
+					+ (System.currentTimeMillis() - spendtime) / 1000f + " 秒 ");
+			return true;
+		} catch (Exception e) {
+			Logger.error("====" + billName + "写入日志插入异常===" + e.getMessage());
+			return false;
+		}
+
+		
+	}
+
+	@Override
+	public boolean insertFileLog_RequiresNew(UFBoolean isSuccess, String operation, String resultInfo, String errorInfo,
+			String sendData, String filename, String downdate, String downtype, String filetype)
+			throws BusinessException {
+		// TODO Auto-generated method stub
+
+		// TODO Auto-generated method stub
+		try {
+			Logger.debug("==============enter method insertLog_RequiresNew ========");
+			long spendtime = System.currentTimeMillis();
+			Logger.debug("执行 文件下载日志写入操作 start time:--- " + System.currentTimeMillis());
+			
+			NCFileDownLogVO logVO = new NCFileDownLogVO();
+			logVO.setIssuccess(isSuccess);// 是否成功
+			logVO.setOperation(operation);// 操作
+			logVO.setResultinfo(resultInfo);// 结果信息
+			logVO.setErrorinfo(errorInfo);// 异常信息
+			logVO.setSenddata(sendData);// 发送的数据
+			logVO.setFilename(filename);//文件名
+			logVO.setFiletype(filetype);//文件类型
+			logVO.setDowndate(downdate);//下载日期
+			logVO.setDowntype(downtype);//下载方式
+			new BaseDAO().insertVO(logVO);
+			Logger.debug("执行 文件下载日志写入操作 end  耗时 : "
+					+ (System.currentTimeMillis() - spendtime) / 1000f + " 秒 ");
+			return true;
+		} catch (Exception e) {
+			Logger.error("====" + filename + "写入日志插入异常===" + e.getMessage());
+			return false;
+		}
+
+		
+	
+	}
+
+}

+ 426 - 0
src/public/nc/bs/pubdev/tools/formula/ExtFormulaParser.java

@@ -0,0 +1,426 @@
+package nc.bs.pubdev.tools.formula;
+
+import java.util.Hashtable;
+
+import org.hsqldb.lib.StringUtil;
+
+import nc.bs.logging.Logger;
+import nc.ui.pub.formulaparse.FormulaParse;
+import nc.vo.ep.bx.BXVO;
+import nc.vo.pub.AggregatedValueObject;
+import nc.vo.pub.CircularlyAccessibleValueObject;
+import nc.vo.pub.formulaset.FormulaParseFather;
+import nc.vo.pub.formulaset.VarryVO;
+import nc.vo.pub.lang.UFBoolean;
+import nc.vo.pub.lang.UFDate;
+import nc.vo.pub.lang.UFDateTime;
+import nc.vo.pub.lang.UFDouble;
+import nc.vo.trade.pub.IExAggVO;
+
+public class ExtFormulaParser {
+
+	FormulaParseFather formulaParse;
+
+	public FormulaParseFather getFormulaParse() {
+		if (formulaParse == null) {
+			formulaParse = new FormulaParse();
+		}
+		return formulaParse;
+	}
+
+	public ExtFormulaParser() {
+	}
+
+	public ExtFormulaParser(FormulaParseFather formulaParse) {
+		this.formulaParse = formulaParse;
+	}
+
+	public void execFormulas(String[] formulas, AggregatedValueObject aggVO, boolean isHead) {
+		if (formulas != null && aggVO != null) {
+			if (isHead) {
+				if (aggVO.getParentVO() != null) {
+					execFormulas(formulas, new CircularlyAccessibleValueObject[] { aggVO.getParentVO() }, getFormulaParse(), aggVO);
+				}
+			} else {
+				if (aggVO.getChildrenVO() != null && aggVO.getChildrenVO().length > 0) {
+					execFormulas(formulas, aggVO.getChildrenVO(), getFormulaParse(), aggVO);
+				}
+			}
+		}
+	}
+
+	public void execFormulas(String[] formulas, IExAggVO exAggVO, boolean isHead, String bodyTableCode) {
+		if (formulas != null && exAggVO != null) {
+			if (isHead) {
+				if (exAggVO.getParentVO() != null) {
+					execFormulas(formulas, new CircularlyAccessibleValueObject[] { exAggVO.getParentVO() }, getFormulaParse(), exAggVO);
+				}
+			} else if (exAggVO.getChildrenVO() != null && exAggVO.getChildrenVO().length > 0) {
+				execFormulas(formulas, exAggVO.getTableVO(bodyTableCode), getFormulaParse(), exAggVO);
+			}
+		}
+	}
+
+	public void execFormulas(String[] formulas, CircularlyAccessibleValueObject[] vos) {
+		execFormulas(formulas, vos, getFormulaParse(), null);
+	}
+
+	public void execFormulas(String[] formulas, CircularlyAccessibleValueObject[] vos, FormulaParseFather formulaParse) {
+		execFormulas(formulas, vos, formulaParse, null);
+	}
+
+	protected void execFormulas(String[] formulas, CircularlyAccessibleValueObject[] vos, FormulaParseFather formulaParse, Object bill) {
+		if (formulas == null || formulas.length <= 0 || vos == null || vos.length <= 0 || formulaParse == null)
+			return;
+
+		formulaParse.setExpressArray(formulas);
+
+		VarryVO[] varrys = formulaParse.getVarryArray();
+
+		Hashtable[] hs = new Hashtable[varrys.length];
+
+		Class cl = null;
+
+		if (varrys != null) {
+			for (int i = 0, loop = varrys.length; i < loop; i++) {
+				VarryVO varry = varrys[i];
+				Hashtable h = new Hashtable();
+				String[] strVarry = varry.getVarry();
+				if (strVarry != null) {
+					for (int j = 0, loop1 = strVarry.length; j < loop1; j++) {
+						String key = strVarry[j];
+						if (IFormulaExt.BILL_VO.equalsIgnoreCase(key)) {
+							if (bill != null) {
+								if (bill instanceof IExAggVO) {
+									formulaParse.addVariable(IFormulaExt.BILL_VO, (IExAggVO) bill);
+								} else if (bill instanceof AggregatedValueObject) {
+									formulaParse.addVariable(IFormulaExt.BILL_VO, (AggregatedValueObject) bill);
+								}
+							}
+						} else if (!StringUtil.isEmpty(key) && key.indexOf(IFormulaExt.HEAD_FIELD) != -1) {
+							String newKey = key.replace(IFormulaExt.HEAD_FIELD, "");
+							String[] os = new String[vos.length];
+							CircularlyAccessibleValueObject headVO = null;
+							if (bill != null) {
+								if (bill instanceof IExAggVO) {
+									headVO = ((IExAggVO) bill).getParentVO();
+								} else if (bill instanceof AggregatedValueObject) {
+									headVO = ((AggregatedValueObject) bill).getParentVO();
+								}
+							}
+							for (int row = 0, loop2 = vos.length; row < loop2; row++) {
+								Object o = null;
+								if (headVO != null) {
+									o = headVO.getAttributeValue(newKey);
+								}
+								String value = null;
+								if (o != null) {
+									cl = o.getClass();
+									if (cl == Integer.class || cl == UFDouble.class || cl == Double.class)
+										value = o.toString();
+									else
+										value = "\"" + o.toString() + "\"";
+								} else {
+								}
+								os[row] = value;
+							}
+							h.put(key, os);
+						} else if (!StringUtil.isEmpty(key) && key.indexOf(IFormulaExt.BODY_FIELD) != -1) {
+							String[] os = new String[vos.length];
+							for (int row = 0, loop2 = vos.length; row < loop2; row++) {
+								Object o = vos[row].getAttributeValue(key);
+								String value = null;
+								if (o != null) {
+									cl = o.getClass();
+									if (cl == Integer.class || cl == UFDouble.class || cl == Double.class)
+										value = o.toString();
+									else
+										value = "\"" + o.toString() + "\"";
+								} else {
+
+								}
+								os[row] = value;
+							}
+							h.put(key, os);
+						} else {
+							String[] os = new String[vos.length];
+							for (int row = 0, loop2 = vos.length; row < loop2; row++) {
+								Object o = vos[row].getAttributeValue(key);
+								String value = null;
+								if (o != null) {
+									cl = o.getClass();
+									if (cl == Integer.class || cl == UFDouble.class || cl == Double.class)
+										value = o.toString();
+									else
+										value = "\"" + o.toString() + "\"";
+								} else {
+
+								}
+								os[row] = value;
+							}
+							h.put(key, os);
+						}
+					}
+				}
+				hs[i] = h;
+			}
+		}
+
+		formulaParse.setDataSArray(hs);
+
+		String[][] results = formulaParse.getValueSArray();
+		if (results != null) {
+
+			for (int i = 0, loop = results.length; i < loop; i++) {
+				String result[] = results[i];
+				VarryVO varry = varrys[i];
+				for (int row = 0, loop1 = vos.length; row < loop1; row++) {
+					String formulaname = varry.getFormulaName();
+					if (formulaname != null && formulaname.trim().length() > 0) {
+						try {
+							if(null!=result&&result.length>0){
+								if(result.length==vos.length){
+									if (result[row] != null && "".equals(result[row].toString().trim()))
+										result[row] = null;
+										setValueToVo(vos[row], result[row], formulaname);
+								}else{
+									for(int k=0;k<result.length;k++){
+										if (result[k] != null && "".equals(result[k].trim()))
+											result[k] = null;
+										setValueToVo(vos[row], result[k], formulaname);
+								}
+								}
+								
+							}
+						} catch (Exception e) {
+							Logger.error(e.getMessage());
+						}
+
+					}
+				}
+			}
+
+		}
+	}
+
+	public static void setValueToVo(CircularlyAccessibleValueObject vo, Object value, String key) {
+		if ((vo == null) || (key == null)) {
+			return;
+		}
+		if (value == null) {
+			vo.setAttributeValue(key, value);
+			return;
+		}
+		key = key.trim();
+
+		Class cl = null;
+		try {
+			cl = vo.getClass().getDeclaredField("m_" + key).getType();
+		} catch (NoSuchFieldException e) {
+			try {
+				cl = vo.getClass().getDeclaredField(key).getType();
+			} catch (NoSuchFieldException ex) {
+				cl = String.class;
+			} catch (Exception ex) {
+			}
+		} catch (Exception e) {
+			// SCMEnv.out(e.getMessage());
+		}
+		Object oTarget = value;
+		if (cl != null) {
+			Class vcl = value.getClass();
+			if (vcl != cl) {
+				if (cl == String.class) {
+					oTarget = value.toString();
+				} else if (cl == UFDouble.class) {
+					oTarget = new UFDouble(value.toString());
+				} else if (cl == Integer.class) {
+					String stemp = value.toString();
+					int index = stemp.indexOf(".");
+					if (index >= 0) {
+						stemp = stemp.substring(0, index);
+					}
+					oTarget = new Integer(stemp);
+				} else if (cl == UFBoolean.class) {
+					oTarget = new UFBoolean(value.toString());
+				} else if (cl == UFDate.class) {
+					oTarget = new UFDate(value.toString());
+				}
+			}
+		}
+		try {
+			vo.setAttributeValue(key, oTarget);
+		} catch (Exception e) {
+			// SCMEnv.out(e.getMessage());
+		}
+	}
+
+	public void execFormulas(String[] headFormulas, String[] bodyFormulas, AggregatedValueObject aggVO) {
+		if (aggVO != null) {
+			if (headFormulas != null && aggVO.getParentVO() != null) {
+				execFormulas(headFormulas, new CircularlyAccessibleValueObject[] { aggVO.getParentVO() }, getFormulaParse(), aggVO);
+			}
+			if (bodyFormulas != null && aggVO.getChildrenVO() != null && aggVO.getChildrenVO().length > 0) {
+				execFormulas(bodyFormulas, aggVO.getChildrenVO(), getFormulaParse(), aggVO);
+			}
+		}
+	}
+
+	public void execFormulas(String[] headFormulas, String[] bodyFormulas, AggregatedValueObject aggVO, String billtype) {
+		if (headFormulas != null && bodyFormulas != null && aggVO != null) {
+			if (aggVO.getParentVO() != null) {
+				execCostFormulas(headFormulas, new CircularlyAccessibleValueObject[] { aggVO.getParentVO() }, getFormulaParse(), aggVO);
+			}
+			if (((BXVO) aggVO).getcShareDetailVo() != null && ((BXVO) aggVO).getcShareDetailVo().length > 0) {
+				execCostFormulas(bodyFormulas, ((BXVO) aggVO).getcShareDetailVo(), getFormulaParse(), aggVO);
+			}
+		}
+	}
+
+	private void execCostFormulas(String[] formulas, CircularlyAccessibleValueObject[] vos, FormulaParseFather formulaParse, Object bill) {
+		if (formulas == null || formulas.length <= 0 || vos == null || vos.length <= 0 || formulaParse == null)
+			return;
+		formulaParse.setExpressArray(formulas);
+		VarryVO[] varrys = formulaParse.getVarryArray();
+		Hashtable[] hs = new Hashtable[varrys.length];
+		Class cl = null;
+		if (varrys != null) {
+			for (int i = 0, loop = varrys.length; i < loop; i++) {
+				VarryVO varry = varrys[i];
+				Hashtable h = new Hashtable();
+				String[] strVarry = varry.getVarry();
+				if (strVarry != null) {
+					for (int j = 0, loop1 = strVarry.length; j < loop1; j++) {
+						String key = strVarry[j];
+						//modify by 谢文如  增加汇总 2018-04-11 begin
+						if(IFormulaExt.BILL_VO.equalsIgnoreCase(key)) {
+							// 扩展自定变量设值
+							if (bill != null) {
+								if (bill instanceof IExAggVO) {
+									formulaParse.addVariable(IFormulaExt.BILL_VO, (IExAggVO) bill);
+								} else if (bill instanceof AggregatedValueObject) {
+									formulaParse.addVariable(IFormulaExt.BILL_VO, (AggregatedValueObject) bill);
+								}
+							}
+						} else if (!StringUtil.isEmpty(key) && key.indexOf(IFormulaExt.HEAD_FIELD) != -1) {
+							String newKey = key.replace(IFormulaExt.HEAD_FIELD, "");
+							String[] os = new String[vos.length];
+							CircularlyAccessibleValueObject headVO = null;
+							if (bill != null) {
+								if (bill instanceof IExAggVO) {
+									headVO = ((IExAggVO) bill).getParentVO();
+								} else if (bill instanceof AggregatedValueObject) {
+									headVO = ((AggregatedValueObject) bill).getParentVO();
+								}
+							}
+							for (int row = 0, loop2 = vos.length; row < loop2; row++) {
+								Object o = null;
+								if (headVO != null) {
+									o = headVO.getAttributeValue(newKey);
+								}
+								String value = null;
+								if (o != null) {
+									cl = o.getClass();
+									if (cl == Integer.class || cl == UFDouble.class || cl == Double.class)
+										value = o.toString();
+									else
+										value = "\"" + o.toString() + "\"";
+								} else {
+								}
+								os[row] = value;
+							}
+							h.put(key, os);
+						}else{
+							String[] os = new String[vos.length];
+							for (int row = 0, loop2 = vos.length; row < loop2; row++) {
+								Object o = vos[row].getAttributeValue(key);
+								String value = null;
+								if (o != null) {
+									cl = o.getClass();
+									if (cl == Integer.class || cl == UFDouble.class || cl == Double.class)
+										value = o.toString();
+									else
+										value = "\"" + o.toString() + "\"";
+								} else {
+									
+								}
+								os[row] = value;
+							}
+							h.put(key, os);
+						}
+						//modify by 谢文如  增加汇总 2018-04-11 end
+					}
+				}
+				hs[i] = h;
+			}
+		}
+		formulaParse.setDataSArray(hs);
+		String[][] results = formulaParse.getValueSArray();
+		if (results != null) {
+			for (int i = 0, loop = results.length; i < loop; i++) {
+				String result[] = results[i];
+				VarryVO varry = varrys[i];
+				for (int row = 0, loop1 = vos.length; row < loop1; row++) {
+					String formulaname = varry.getFormulaName();
+					if (formulaname != null && formulaname.trim().length() > 0) {
+						if (result[row] != null && "".equals(result[row].toString().trim()))
+							result[row] = null;
+						setValueToCostVo(vos[row], result[row], formulaname);
+					}
+				}
+			}
+
+		}
+	}
+
+	private static void setValueToCostVo(CircularlyAccessibleValueObject vo, Object value, String key) {
+		if ((vo == null) || (key == null)) {
+			return;
+		}
+		if (value == null) {
+			vo.setAttributeValue(key, value);
+			return;
+		}
+		key = key.trim();
+		Class cl = null;
+		try {
+			cl = vo.getClass().getField(key).getType();
+		} catch (Exception e) {
+			try {
+				cl = vo.getClass().getDeclaredField(key).getType();
+			} catch (Exception e1) {
+				if ("ismashare".equals(key)) {
+					cl = UFBoolean.class;
+				}
+			}
+		}
+		Object oTarget = value;
+		if (cl != null) {
+			Class vcl = value.getClass();
+			if (vcl != cl) {
+				if (cl == String.class) {
+					oTarget = value.toString();
+				} else if (cl == UFDouble.class) {
+					oTarget = new UFDouble(value.toString());
+				} else if (cl == Integer.class) {
+					String stemp = value.toString();
+					int index = stemp.indexOf(".");
+					if (index >= 0) {
+						stemp = stemp.substring(0, index);
+					}
+					oTarget = new Integer(stemp);
+				} else if (cl == UFBoolean.class) {
+					oTarget = new UFBoolean(value.toString());
+				} else if (cl == UFDate.class) {
+					oTarget = new UFDate(value.toString());
+				} else if (cl == UFDateTime.class) {
+					oTarget = new UFDateTime(value.toString());
+				}
+			}
+		}
+		try {
+			vo.setAttributeValue(key, oTarget);
+		} catch (Exception e) {
+		}
+	}
+}

+ 12 - 0
src/public/nc/bs/pubdev/tools/formula/IFormulaExt.java

@@ -0,0 +1,12 @@
+package nc.bs.pubdev.tools.formula;
+
+public interface IFormulaExt {
+
+	public static final String HEAD_FIELD = "#H_";
+	public static final String BODY_FIELD = "#B_";
+	public static final String BILL_VO = "#BILL_VO";
+	public static final String HEAD_VO = "#HEAD_VO";
+	public static final String BODY_VO = "#BODY_VO";
+	public static final String IS_EXAGGVO = "#IS_EXAGGVO";
+	public static final String EXAGGVO_BODY_TABLECODE = "#EXAGGVO_BODY_TABLECODE";
+}

+ 44 - 0
src/public/nc/itf/pubdev/pubtool/logserver/IDevExecLogServer_RequiresNew.java

@@ -0,0 +1,44 @@
+package nc.itf.pubdev.pubtool.logserver;
+
+import nc.vo.pub.BusinessException;
+import nc.vo.pub.lang.UFBoolean;
+
+public interface IDevExecLogServer_RequiresNew {
+	
+	/**
+	 * 记录二开程序日志
+	 * @param isSuccess 状态(Y:成功,N:失败)
+	 * @param operation 操作
+	 * @param resultInfo 结果信息
+	 * @param errorInfo 异常信息
+	 * @param sendData 执行的数据
+	 * @param billId 单据id
+	 * @param billType 单据类型编码
+	 * @param billName 单据名称
+	 * @return
+	 * @throws BusinessException
+	 */
+	public boolean insertLog_RequiresNew(UFBoolean isSuccess, String operation,
+			String resultInfo, String errorInfo, String sendData,
+			String billId, String billType, String billName) throws BusinessException;
+	
+	
+	/**
+	 * 记录二开文件下载日志
+	 * @param isSuccess 状态(Y:成功,N:失败)
+	 * @param operation 操作
+	 * @param resultInfo 结果信息
+	 * @param errorInfo 异常信息
+	 * @param sendData 执行的数据
+	 * @param filename 文件名称
+	 * @param downdate 下载日期
+	 * @param downtype 下载类型
+	 * @param filetype 文件类型
+	 * @return
+	 * @throws BusinessException
+	 */
+	public boolean insertFileLog_RequiresNew(UFBoolean isSuccess, String operation,
+			String resultInfo, String errorInfo, String sendData,
+			String filename, String downdate, String downtype,String filetype) throws BusinessException;
+
+}

+ 341 - 0
src/public/nc/vo/pub/pubtool/logserver/NCDevExecLogVO.java

@@ -0,0 +1,341 @@
+package nc.vo.pub.pubtool.logserver;
+
+import nc.vo.pub.SuperVO;
+import nc.vo.pub.lang.UFBoolean;
+
+/**
+ * @author longht
+ * @date 2018-10-16
+ * @功能名称 SM_NCDEVEXECLOG二开程序执行日志
+ * @功能描述
+ */
+@SuppressWarnings("serial")
+public class NCDevExecLogVO extends SuperVO {
+
+	private String def1;
+	/**
+	 * 自定义项2
+	 */
+	private String def2;
+	/**
+	 * 自定义项3
+	 */
+	private String def3;
+	/**
+	 * 自定义项4
+	 */
+	private String def4;
+	/**
+	 * 自定义项5
+	 */
+	private String def5;
+	/**
+	 * 自定义项6
+	 */
+	private String def6;
+	/**
+	 * 自定义项7
+	 */
+	private String def7;
+	/**
+	 * 自定义项8
+	 */
+	private String def8;
+	/**
+	 * 自定义项9
+	 */
+	private String def9;
+	/**
+	 * 是否成功
+	 */
+	private UFBoolean issuccess;
+	/**
+	 * 操作
+	 */
+	private String operation;
+	/**
+	 * 日志主键
+	 */
+	private String pk_log;
+	/**
+	 * 结果信息
+	 */
+	private String resultinfo;
+	/**
+	 * 异常信息
+	 */
+	private String errorinfo;
+	/**
+	 * 发送数据
+	 */
+	private String senddata;
+	/**
+	 * 所属单据主键
+	 */
+	private String src_pk_bill;
+	/**
+	 * 所属单据类型名称
+	 */
+	private String src_pk_billname;
+	/**
+	 * 所属单据类型编码
+	 */
+	private String src_pk_billtype;
+
+	public String getDef1() {
+		return def1;
+	}
+
+	public void setDef1(String def1) {
+		this.def1 = def1;
+	}
+
+	public String getDef2() {
+		return def2;
+	}
+
+	public void setDef2(String def2) {
+		this.def2 = def2;
+	}
+
+	public String getDef3() {
+		return def3;
+	}
+
+	public void setDef3(String def3) {
+		this.def3 = def3;
+	}
+
+	public String getDef4() {
+		return def4;
+	}
+
+	public void setDef4(String def4) {
+		this.def4 = def4;
+	}
+
+	public String getDef5() {
+		return def5;
+	}
+
+	public void setDef5(String def5) {
+		this.def5 = def5;
+	}
+
+	public String getDef6() {
+		return def6;
+	}
+
+	public void setDef6(String def6) {
+		this.def6 = def6;
+	}
+
+	public String getDef7() {
+		return def7;
+	}
+
+	public void setDef7(String def7) {
+		this.def7 = def7;
+	}
+
+	public String getDef8() {
+		return def8;
+	}
+
+	public void setDef8(String def8) {
+		this.def8 = def8;
+	}
+
+	public String getDef9() {
+		return def9;
+	}
+
+	public void setDef9(String def9) {
+		this.def9 = def9;
+	}
+
+	public UFBoolean getIssuccess() {
+		return issuccess;
+	}
+
+	public void setIssuccess(UFBoolean issuccess) {
+		this.issuccess = issuccess;
+	}
+
+	public String getOperation() {
+		return operation;
+	}
+
+	public void setOperation(String operation) {
+		this.operation = operation;
+	}
+
+	public String getPk_log() {
+		return pk_log;
+	}
+
+	public void setPk_log(String pk_log) {
+		this.pk_log = pk_log;
+	}
+
+	public String getResultinfo() {
+		return resultinfo;
+	}
+
+	public void setResultinfo(String resultinfo) {
+		this.resultinfo = resultinfo;
+	}
+
+	public String getErrorinfo() {
+		return errorinfo;
+	}
+
+	public void setErrorinfo(String errorinfo) {
+		this.errorinfo = errorinfo;
+	}
+
+	public String getSenddata() {
+		return senddata;
+	}
+
+	public void setSenddata(String senddata) {
+		this.senddata = senddata;
+	}
+
+	public String getSrc_pk_bill() {
+		return src_pk_bill;
+	}
+
+	public void setSrc_pk_bill(String src_pk_bill) {
+		this.src_pk_bill = src_pk_bill;
+	}
+
+	public String getSrc_pk_billname() {
+		return src_pk_billname;
+	}
+
+	public void setSrc_pk_billname(String src_pk_billname) {
+		this.src_pk_billname = src_pk_billname;
+	}
+
+	public String getSrc_pk_billtype() {
+		return src_pk_billtype;
+	}
+
+	public void setSrc_pk_billtype(String src_pk_billtype) {
+		this.src_pk_billtype = src_pk_billtype;
+	}
+
+	/**
+	 * <p>
+	 * 取得父VO主键字段.
+	 * <p>
+	 * 创建日期:
+	 * 
+	 * @return String
+	 */
+	public String getParentPKFieldName() {
+		return null;
+	}
+
+	/**
+	 * <p>
+	 * 取得表主键.
+	 * <p>
+	 * 创建日期:
+	 * 
+	 * @return String
+	 */
+	public String getPKFieldName() {
+		return "pk_log";
+	}
+
+	/**
+	 * <p>
+	 * 返回表名称.
+	 * <p>
+	 * 创建日期:
+	 * 
+	 * @return String
+	 */
+	public String getTableName() {
+		return "SM_NCDEVEXECLOG";
+	}
+
+	/**
+	 * 自定义项1
+	 */
+	public static final String DEF1 = "def1";
+	/**
+	 * 自定义项2
+	 */
+	public static final String DEF2 = "def2";
+	/**
+	 * 自定义项3
+	 */
+	public static final String DEF3 = "def3";
+	/**
+	 * 自定义项4
+	 */
+	public static final String DEF4 = "def4";
+	/**
+	 * 自定义项5
+	 */
+	public static final String DEF5 = "def5";
+	/**
+	 * 自定义项6
+	 */
+	public static final String DEF6 = "def6";
+	/**
+	 * 自定义项7
+	 */
+	public static final String DEF7 = "def7";
+	/**
+	 * 自定义项8
+	 */
+	public static final String DEF8 = "def8";
+	/**
+	 * 自定义项9
+	 */
+	public static final String DEF9 = "def9";
+	/**
+	 * 是否成功
+	 */
+	public static final String ISSUCCESS = "issuccess";
+	/**
+	 * 操作
+	 */
+	public static final String OPERATION = "operation";
+	/**
+	 * 日志主键
+	 */
+	public static final String PK_LOG = "pk_log";
+	/**
+	 * 结果信息
+	 */
+	public static final String RESULTINFO = "resultinfo";
+	/**
+	 * 异常信息
+	 */
+	public static final String ERRORINFO = "errorinfo";
+	/**
+	 * 发送数据
+	 */
+	public static final String SENDDATA = "senddata";
+	/**
+	 * 所属单据主键
+	 */
+	public static final String SRC_PK_BILL = "src_pk_bill";
+	/**
+	 * 所属单据类型名称
+	 */
+	public static final String SRC_PK_BILLNAME = "src_pk_billname";
+	/**
+	 * 所属单据类型编码
+	 */
+	public static final String SRC_PK_BILLTYPE = "src_pk_billtype";
+	/**
+	 * 时间戳
+	 */
+	public static final String TS = "ts";
+}

+ 365 - 0
src/public/nc/vo/pub/pubtool/logserver/NCFileDownLogVO.java

@@ -0,0 +1,365 @@
+package nc.vo.pub.pubtool.logserver;
+
+import nc.vo.pub.SuperVO;
+import nc.vo.pub.lang.UFBoolean;
+
+/**
+ * @author longht
+ * @date 2018-10-16
+ * @功能名称 SM_NCDEVEXECLOG二开程序执行日志
+ * @功能描述
+ */
+@SuppressWarnings("serial")
+public class NCFileDownLogVO extends SuperVO {
+
+	/**
+	 * 自定义项1
+	 */
+	private String def1;
+	/**
+	 * 自定义项2
+	 */
+	private String def2;
+	/**
+	 * 自定义项3
+	 */
+	private String def3;
+	/**
+	 * 自定义项4
+	 */
+	private String def4;
+	/**
+	 * 自定义项5
+	 */
+	private String def5;
+	/**
+	 * 自定义项6
+	 */
+	private String def6;
+	/**
+	 * 自定义项7
+	 */
+	private String def7;
+	/**
+	 * 自定义项8
+	 */
+	private String def8;
+	/**
+	 * 自定义项9
+	 */
+	private String def9;
+	/**
+	 * 是否成功
+	 */
+	private UFBoolean issuccess;
+	/**
+	 * 操作
+	 */
+	private String operation;
+	/**
+	 * 日志主键
+	 */
+	private String pk_log;
+	/**
+	 * 结果信息
+	 */
+	private String resultinfo;
+	/**
+	 * 异常信息
+	 */
+	private String errorinfo;
+	/**
+	 * 发送数据
+	 */
+	private String senddata;
+	/**
+	 * 文件名称
+	 */
+	private String filename;
+	/**
+	 * 下载日期
+	 */
+	private String downdate;
+	/**
+	 * 下载方式
+	 */
+	private String downtype;
+	/**
+	 * 文件类型
+	 */
+	private String filetype;
+
+
+	/**
+	 * 自定义项1
+	 */
+	public static final String DEF1 = "def1";
+	/**
+	 * 自定义项2
+	 */
+	public static final String DEF2 = "def2";
+	/**
+	 * 自定义项3
+	 */
+	public static final String DEF3 = "def3";
+	/**
+	 * 自定义项4
+	 */
+	public static final String DEF4 = "def4";
+	/**
+	 * 自定义项5
+	 */
+	public static final String DEF5 = "def5";
+	/**
+	 * 自定义项6
+	 */
+	public static final String DEF6 = "def6";
+	/**
+	 * 自定义项7
+	 */
+	public static final String DEF7 = "def7";
+	/**
+	 * 自定义项8
+	 */
+	public static final String DEF8 = "def8";
+	/**
+	 * 自定义项9
+	 */
+	public static final String DEF9 = "def9";
+	/**
+	 * 是否成功
+	 */
+	public static final String ISSUCCESS = "issuccess";
+	/**
+	 * 操作
+	 */
+	public static final String OPERATION = "operation";
+	/**
+	 * 日志主键
+	 */
+	public static final String PK_LOG = "pk_log";
+	/**
+	 * 结果信息
+	 */
+	public static final String RESULTINFO = "resultinfo";
+	/**
+	 * 异常信息
+	 */
+	public static final String ERRORINFO = "errorinfo";
+	/**
+	 * 发送数据
+	 */
+	public static final String SENDDATA = "senddata";
+	/**
+	 * 所属单据主键
+	 */
+	public static final String FILENAME = "filename";
+	/**
+	 * 所属单据类型名称
+	 */
+	public static final String DOWNDATE = "downdate";
+	/**
+	 * 所属单据类型编码
+	 */
+	public static final String DOWNTYPE = "downtype";
+	/**
+	 * 所属单据类型编码
+	 */
+	public static final String FILETYPE = "filetype";
+	/**
+	 * 时间戳
+	 */
+	public static final String TS = "ts";
+	
+	
+
+	public String getDef1() {
+		return def1;
+	}
+
+	public void setDef1(String def1) {
+		this.def1 = def1;
+	}
+
+	public String getDef2() {
+		return def2;
+	}
+
+	public void setDef2(String def2) {
+		this.def2 = def2;
+	}
+
+	public String getDef3() {
+		return def3;
+	}
+
+	public void setDef3(String def3) {
+		this.def3 = def3;
+	}
+
+	public String getDef4() {
+		return def4;
+	}
+
+	public void setDef4(String def4) {
+		this.def4 = def4;
+	}
+
+	public String getDef5() {
+		return def5;
+	}
+
+	public void setDef5(String def5) {
+		this.def5 = def5;
+	}
+
+	public String getDef6() {
+		return def6;
+	}
+
+	public void setDef6(String def6) {
+		this.def6 = def6;
+	}
+
+	public String getDef7() {
+		return def7;
+	}
+
+	public void setDef7(String def7) {
+		this.def7 = def7;
+	}
+
+	public String getDef8() {
+		return def8;
+	}
+
+	public void setDef8(String def8) {
+		this.def8 = def8;
+	}
+
+	public String getDef9() {
+		return def9;
+	}
+
+	public void setDef9(String def9) {
+		this.def9 = def9;
+	}
+
+	public UFBoolean getIssuccess() {
+		return issuccess;
+	}
+
+	public void setIssuccess(UFBoolean issuccess) {
+		this.issuccess = issuccess;
+	}
+
+	public String getOperation() {
+		return operation;
+	}
+
+	public void setOperation(String operation) {
+		this.operation = operation;
+	}
+
+	public String getPk_log() {
+		return pk_log;
+	}
+
+	public void setPk_log(String pk_log) {
+		this.pk_log = pk_log;
+	}
+
+	public String getResultinfo() {
+		return resultinfo;
+	}
+
+	public void setResultinfo(String resultinfo) {
+		this.resultinfo = resultinfo;
+	}
+
+	public String getErrorinfo() {
+		return errorinfo;
+	}
+
+	public void setErrorinfo(String errorinfo) {
+		this.errorinfo = errorinfo;
+	}
+
+	public String getSenddata() {
+		return senddata;
+	}
+
+	public void setSenddata(String senddata) {
+		this.senddata = senddata;
+	}
+
+	public String getFilename() {
+		return filename;
+	}
+
+	public void setFilename(String filename) {
+		this.filename = filename;
+	}
+
+	public String getDowndate() {
+		return downdate;
+	}
+
+	public void setDowndate(String downdate) {
+		this.downdate = downdate;
+	}
+
+	public String getDowntype() {
+		return downtype;
+	}
+
+	public void setDowntype(String downtype) {
+		this.downtype = downtype;
+	}
+
+	public String getFiletype() {
+		return filetype;
+	}
+
+	public void setFiletype(String filetype) {
+		this.filetype = filetype;
+	}
+
+	/**
+	 * <p>
+	 * 取得父VO主键字段.
+	 * <p>
+	 * 创建日期:
+	 * 
+	 * @return String
+	 */
+	public String getParentPKFieldName() {
+		return null;
+	}
+
+	/**
+	 * <p>
+	 * 取得表主键.
+	 * <p>
+	 * 创建日期:
+	 * 
+	 * @return String
+	 */
+	public String getPKFieldName() {
+		return "pk_log";
+	}
+
+	/**
+	 * <p>
+	 * 返回表名称.
+	 * <p>
+	 * 创建日期:
+	 * 
+	 * @return String
+	 */
+	public String getTableName() {
+		return "sm_devfiledownlog";
+	}
+
+
+}