apzl_leasing/calc/com/tenwa/reckon/copydata/FileCopyToOtherPath.java
2019-04-26 10:12:30 +08:00

105 lines
3.2 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.tenwa.reckon.copydata;
import java.io.File;
import java.io.IOException;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import jbo.app.tenwa.doc.LC_COPYFILE_LOG;
import org.apache.commons.io.FileUtils;
import com.amarsoft.are.jbo.BizObject;
import com.amarsoft.are.jbo.BizObjectManager;
import com.amarsoft.are.jbo.JBOFactory;
import com.amarsoft.awe.Configure;
import com.amarsoft.awe.util.Transaction;
import com.tenwa.comm.util.jboutil.DataOperatorUtil;
public class FileCopyToOtherPath {
private String contractNos;
public String getContractNo() {
return contractNos;
}
public void setContractNos(String contractNos) {
this.contractNos = contractNos;
}
public String doCopy(String contractNo){
Transaction Sqlca = Transaction.createTransaction("als");
//原路径
String srcPath ;
//目标相对路径
String destPath = null ;
//目标根目录
String rootPath;
try {
Configure config = Configure.getInstance();
rootPath = config.getConfigure("FileCopyPath");
String sql = "SELECT O.FULLPATH AS FULLPATH, CONCAT(LCI.CONTRACT_NO, '/', LDL.ONE_CLASSIFY, '/' , LDL.DOC_NAME, '/', O.FILENAME) AS TARGET_FILE_PATH FROM LB_DOCATTRIBUTE O"
+" LEFT JOIN LB_DOCLIBRARY LDL ON LDL.ID = O.LIBRARY_ID"
+" LEFT JOIN LB_DOCRELATIVE LDR ON LDL.RELATIVE_ID = LDR.ID"
+" LEFT JOIN LB_CONTRACT_INFO LCI ON LDR.CONTRACT_ID = LCI.ID"
+" WHERE LCI.CONTRACT_NO ='"+contractNo+"'";
Map<String,String> params=new HashMap<String,String>();
List<Map<String, String>> pathList = DataOperatorUtil.getDataBySql(Sqlca,sql,params);
if(pathList.size()>0){
for(Map<String, String> path:pathList){
srcPath = path.get("FULLPATH");
destPath =rootPath+"/"+path.get("TARGET_FILE_PATH");
File srcFile = new File(srcPath);
File destFile = new File(destPath);
try {
//文件拷贝true为最后修改时间不变fail为当前时间.
//拷贝时如果目标文件已存在,则会从新覆盖。
FileUtils.copyFile(srcFile, destFile, true);
} catch (IOException e) {
e.printStackTrace();
}
}
System.out.println("合同"+contractNo+"一共有"+pathList.size()+"条数据!!");
}else{
System.out.println("================"+contractNo+"没有关联到文件"+"===============");
}
BizObjectManager bom = JBOFactory.getBizObjectManager(LC_COPYFILE_LOG.CLASS_NAME);
BizObject nbom = bom.newObject();
nbom.setAttributeValue("CONTRACT_NO", contractNo);
nbom.setAttributeValue("BATCH_NO", contractNo);
nbom.setAttributeValue("DEST_PATH", destPath);
nbom.setAttributeValue("FILE_COUNT", pathList.size());
bom.saveObject(nbom);
} catch (Exception e) {
e.printStackTrace();
return contractNo;
}
return "Y";
}
public String copyFile(){
String failNo="";
List<String> cns = Arrays.asList(contractNos.split("@"));
for(String contractNo:cns){
if("".equals(contractNo)||contractNo==null){
continue;
}
String result = doCopy(contractNo);
if(!"Y".equals(result)){
failNo+=contractNo+";";
}
}
if("".equals(failNo)){
return "SUCCESS";
}
return failNo;
}
}