两个任务的总结

1.在制定路径下添加文件夹并命名

package com.efounder.finereport.plugin;

import com.efounder.bz.service.ServicePluginAdapter;
import com.efounder.mdm.server.MDMContext;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.List;

import com.core.xml.StubObject;
import com.efounder.builder.base.data.EFDataSet;
import com.efounder.builder.base.data.EFRowSet;
import com.efounder.builder.base.util.ESPContext;
import com.efounder.builder.base.util.ESPServerContext;
import com.efounder.builder.config.ConfigDataManager;
import com.efounder.builder.meta.MetaDataManager;
import com.efounder.builder.meta.dctmodel.DCTMetaData;
import com.efounder.bz.service.ServicePluginAdapter;
import com.efounder.db.DBTools;
import com.efounder.dbc.data.DataItem;
import com.efounder.eai.EAI;
import com.efounder.eai.data.JParamObject;
import com.efounder.eai.data.JResponseObject;
import com.efounder.eai.service.dal.DBUtils;
import com.efounder.mdm.EFMDMDataModel;
import com.efounder.mdm.server.MDMContext;
import com.efounder.mdm.server.resolver.util.DICTSaveDataUtils;
import com.efounder.sql.JConnection;
import com.pansoft.esp.datamanager.pub.DictUtilClt;
import com.pansoft.esp.datamanager.server.creater.CreaterUtil;
import com.pansoft.esp.datamanager.server.creater.plugin.CreateContext;
public class FineReportModuleProcessPlugins extends ServicePluginAdapter {
public FineReportModuleProcessPlugins(){

}
public Object processMDMLoader(MDMContext mdmContext,EFMDMDataModel mdmDataModel) throws Exception {
// 获取元数据
DCTMetaData dctMetaData = mdmContext.getDCTMetaData();
if ( dctMetaData == null ) return null;
JParamObject PO = mdmContext.getParamObject();
EFDataSet updateDataSet = mdmDataModel.getDataSet(mdmDataModel.getDCT_ID()+"_UPDATE");
EFDataSet insertDataSet = mdmDataModel.getDataSet(mdmDataModel.getDCT_ID()+"_INSERT");
EFDataSet deleteDataSet = mdmDataModel.getDataSet(mdmDataModel.getDCT_ID()+"_DELETE");
// updateFlie(updateDataSet);
insertFlie(insertDataSet);
deleteFlie(deleteDataSet);                          //两个方法,方法不能写在方法里面,但是可以通过传递方法名与参数调用方法
return null;
}
//重命名
public static void updateFlie(EFDataSet updateDataSet){
String fileName="";
for(int i=0;i<updateDataSet.getRowCount();i++){
EFRowSet rowset = updateDataSet.getRowSet(i);                     //.getRowSet(i),遍历一下     
fileName = rowset.getString("MODULE_BH", "");
//得到enterprisesever
String eaiRoot = EAI.LocalUserHome;                            //得到根节点也就是enterprisesever
//创建斜杠
String Separator = System.getProperty("file.separator");
if (eaiRoot.endsWith("/") || eaiRoot.endsWith("\\")) {
eaiRoot = eaiRoot.substring(0, eaiRoot.length() - 1);
eaiRoot = eaiRoot + Separator + "WEB-INF" + Separator + "reportlets";     //enterprisesever/WEB-INF/reportlets

}
File file = new File(eaiRoot);
if (file.exists()) {
file.renameTo(new File(fileName));
}
}
}

//新建
public static boolean insertFlie(EFDataSet insertDataSet){
String fileName="";
for(int i=0;i<insertDataSet.getRowCount();i++){
EFRowSet rowset = insertDataSet.getRowSet(i);
fileName = rowset.getString("MODULE_BH", "");
String eaiRoot = EAI.LocalUserHome;
String Separator = System.getProperty("file.separator");
if (eaiRoot.endsWith("/") || eaiRoot.endsWith("\\")) {
eaiRoot = eaiRoot.substring(0, eaiRoot.length() - 1);
eaiRoot = eaiRoot + Separator + "WEB-INF" + Separator + "reportlets";
}
File file = new File(eaiRoot+Separator+fileName);                                         //注意这种写法,
//如果文件夹不存在则创建
if(!file.exists()&&!file.isDirectory()){
file .mkdir();                                                                                   //创建文件夹的时候废了大劲了,就是这么一句话file .mkdir(); 
}else {
System.out.println("//目录存在");
}
}
return false;
}

//删除
public static boolean deleteFlie(EFDataSet deleteDataSet){
String fileName="";
boolean flag=false;
for(int i=0;i<deleteDataSet.getRowCount();i++){
EFRowSet rowset = deleteDataSet.getRowSet(i);
fileName = rowset.getString("MODULE_BH", "");                                //getString(key),得到key的值
}
String eaiRoot = EAI.LocalUserHome;
String Separator = System.getProperty("file.separator");
if (eaiRoot.endsWith("/") || eaiRoot.endsWith("\\")) {
eaiRoot = eaiRoot.substring(0, eaiRoot.length() - 1);
eaiRoot = eaiRoot + Separator + "WEB-INF" + Separator + "reportlets";

}
File file = new File(eaiRoot+Separator+fileName);
// 路径为文件且不为空则进行删除
if (file.isDirectory() && file.exists()) {
file.delete();
flag = true;
}
return flag;
}

}

------------------------------------------------------------------------------------------------------------------------------------------------------

2.检索出该人名下对应的模块(不同的人有不同的模块)

package com.efounder.finereport.server;

import java.io.File;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import com.efounder.eai.EAI;
import com.efounder.eai.data.JParamObject;
import com.efounder.eai.data.JResponseObject;
import com.efounder.eai.framework.JActiveObject;
import com.efounder.sql.JConnection;

public class ESPFineReportDAL extends JActiveObject {
private static final String GUID = "ESPFineReportDAL";

public ESPFineReportDAL() {
setObjectGUID(GUID);
}

/**
* 获取某个文件夹下的子文件夹
*
* @param o1
* @param o2
* @param o3
* @param o4
* @return
* @throws Exception
*/

public Object getChildFolder(Object o1, Object o2, Object o3, Object o4) throws Exception {
JParamObject PO = (JParamObject)o1;
String userName = PO.GetValueByParamName("UserName");
List moduleList = processModule(PO,userName);                                                //从下面的方法传过来的,方法名和参数
JResponseObject RO = new JResponseObject();
List list = new ArrayList();
String eaiRoot = EAI.LocalUserHome;
if (eaiRoot.endsWith("/") || eaiRoot.endsWith("\\")) {
eaiRoot = eaiRoot.substring(0, eaiRoot.length() - 1);
}
String Separator = System.getProperty("file.separator");
eaiRoot = eaiRoot + Separator + "WEB-INF" + Separator + "reportlets"
+ Separator;
File file = new File(eaiRoot);
File[] tempList = file.listFiles();
for (int i = 0; i < tempList.length; i++) {
if (tempList[i].isDirectory()&&moduleList.contains(tempList[i])) {
System.out.println(tempList[i].getName());
list.add(tempList[i].getName());
}
}
RO.setResponseObject(list);
return RO;
}
private List processModule(JParamObject PO, String userName) throws Exception {
JConnection conn = JConnection.getInstance(PO);
List Modulelist = new ArrayList();
try {
String sql = "select MODULE_ID from FR_RY_MODULE_GXB WHERE MODULE_BH=userName";
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery(sql);                                                                                             //注意这里,以后能用到
while (rs.next()) {
String Namelist = rs.getString("MODULE_ID");
Modulelist.add(Namelist);
}
conn.close(); //关闭数据库连接
} catch (SQLException e) {
System.out.println("查询数据失败");
}
return Modulelist;                                                                   //只有return了Modulelist,前面才能使用                                                                   
}

}

时间: 2024-10-19 06:19:45

两个任务的总结的相关文章

微信支付错误两个问题的解决:curl出错,错误码:60

如下是运行微信支付测试代码时出错代码: Warning: curl_setopt() expects parameter 2 to be long, string given in D:\wwwroot\weixinpaytest\pay\WxPay.JsApiPay.php on line 99 Fatal error: Uncaught exception 'WxPayException' with message 'curl出错,错误码:60' in D:\wwwroot\weixinpa

8.03 确定两个日期之间的工作日数目

问题:给定两个日期,求它们之间(包括这两个日期本身)有多少个"工作"日.select sum(case             when date_format(             date_add(jones_hd,interval t500.id - 1, 'DY'),'%a')             in ('SAT', 'SUN')              then 0 else 1           end) as days  from (select max(c

java 判断两个时间相差的天数!

package com.datedaycha;     import java.text.SimpleDateFormat;     import java.util.Calendar;     import java.util.Date;     import com.sun.org.apache.xerces.internal.impl.xpath.regex.ParseException;     /*      * java 判断两个时间相差的天数     1.实现目标     输入:两

一、查看Linux内核版本命令(两种方法):

一.查看Linux内核版本命令(两种方法): 1.cat /proc/version [[email protected]CentOS home]# cat /proc/versionLinux version 2.6.32-431.el6.x86_64 ([email protected]) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC) ) #1 SMP Fri Nov 22 03:15:09 UTC 2013 2.uname -a [

两种插入排序算法java实现

两种方法都编译运行通过,可以当做排序类直接使用. 折半插入排序: public class Sort1 { public static void main(String[] args) { InsertSort sort = new InsertSort(); sort.InsertSort(); int[] arr = sort.getarr(); System.out.println(); System.out.println("排序之后:"); for (int ar : arr

C#中质数的两种算法

一.判断1到该数本身一共能被多少数整除,若只能被两个数整除,则该数为质数. int n = 0; for(int i = 1; i < = num; i++){ //遍历1-num的所有整数与num相除,得出num能被多少个数整除 if(num%i==0){ n++; } } if(n == 2){ //只能被两个数整除,则num为质数 //num是质数 } else{ //num不是质数 } 二.判断该数除1和本身,是否能被其他数整除,若不能,则该数为质数. bool s = false; f

hibernate载入持久化对象的两种方式——get、load

一.get与load对照 在hibernate中get和load方法是依据id取得持久化对象的两种方法.但在实际使用的过程中总会把两者混淆,不知道什么情况下使用get好,什么时候使用load方法效率更高.下边具体说一下get和load的不同,有些时候为了对照也会把find加进来. 1.从返回结果上对照: load方式检索不到的话会抛出org.hibernate.ObjectNotFoundException异常 get方法检索不到的话会返回null 2.从检索运行机制上对照: get方法和fin

Jmeter 跨线程组传递参数 之两种方法

终于搞定了Jmeter跨线程组之间传递参数,这样就不用每次发送请求B之前,都需要同时发送一下登录接口(因为同一个线程组下的请求是同时发送的),只需要发送一次登录请求,请求B直接用登录请求的参数即可,直到登录接口的参数失效了,需再次发送一次登录接口,又可以多次使用其参数,下面举例子: 1.登录接口中利用 Json Path Extractor 获取到登录接口的响应参数,(怎么获取上一节讲过) 终于搞定了Jmeter跨线程组之间传递参数,这样就不用每次发送请求B之前,都需要同时发送一下登录接口(因为

两人合作

现代软件产业经过几十年的发展,一个软件有一个人单枪匹马完成,以及很少见了,软件都是在相互合作中完成的.合作的最小单位是两个人,两个工程师在一起,要相互看懂对方的代码并不是一件容易的事,因为每个人对"好"的代码的理解是不一样的,所以一个基准线--什么是好的代码规范和设计规范就很必要了."代码规范"可以分成两个部分:1.代码风格规范.2.代码设计规范. 代码风格规范的原则是:简明,易读,无二义性.例如对一个书写格式方面的规定:缩进最好为4个空格:对行宽的限制:括号:断行

mysql中计算两个日期的时间差函数TIMESTAMPDIFF用法

mysql中计算两个日期的时间差函数TIMESTAMPDIFF用法: 语法: TIMESTAMPDIFF(interval,datetime_expr1,datetime_expr2) 说明: 返回日期或日期时间表达式datetime_expr1 和datetime_expr2the 之间的整数差.其结果的单位由interval 参数给出.interval 的法定值同TIMESTAMPADD()函数说明中所列出的相同. mysql> SELECT TIMESTAMPDIFF(MONTH,'200