apzl_leasing/src/com/ample/icms/scan/ImageDownload.java
2022-06-22 16:34:44 +08:00

171 lines
6.5 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.ample.icms.scan;
import com.amarsoft.are.jbo.BizObject;
import com.amarsoft.are.jbo.BizObjectManager;
import com.amarsoft.are.jbo.JBOFactory;
import com.amarsoft.awe.util.SqlObject;
import com.amarsoft.awe.util.Transaction;
import com.ample.icms.service.ImageService;
import com.ample.icms.util.PropertiesUtil;
import com.sunyard.insurance.ecm.socket.client.AutoScanApi;
import com.sunyard.insurance.encode.client.EncodeAccessParam;
import com.tenwa.officetempalte.exportcallback.impl.ZipUtils;
import jbo.app.tenwa.doc.LB_DOC_CONTRACT_LIST;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.SimpleHttpConnectionManager;
import org.apache.commons.httpclient.methods.PostMethod;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
import java.io.*;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;
public class ImageDownload extends ImageService {
private String zipPath ;
private String projectId;
private String flowUnid;
private String fileSavePath;
public static String testBatchDownload () throws Exception {
//准备参数
StringBuilder sb = new StringBuilder("xml=交互参数xml字符串&code=ECM0009&format=xml");
String param = EncodeAccessParam.getEncodeParam(sb.toString(),300, PropertiesUtil.get("secret_key"));
String result="";
PostMethod postMethod = null;
HttpClient httpClient = null;
try{
postMethod = new PostMethod(PropertiesUtil.get("url"));
// 设置格式
postMethod.getParams().setContentCharset("UTF-8");
postMethod.setParameter("data", param);
postMethod.setRequestHeader("Referer", "http://172.16.20.212/imaging");
httpClient = new HttpClient();
// 执行postMethod
int statusCode = httpClient.executeMethod(postMethod);
if(statusCode== HttpStatus.SC_OK){
byte[] bodydata = postMethod.getResponseBody();
//取得返回值
result = new String(bodydata, "UTF-8");
}else{
}
}catch (HttpException e) {
//协议发生异常URL不合法请检查URL
} catch (IOException e) {
//请检查网络是否通畅,检查网线是否插好!
} catch(Exception e){
}finally {
if (postMethod != null) {
try {
postMethod.releaseConnection();
} catch (Exception e) {
}
}
if (httpClient != null) {
try {
((SimpleHttpConnectionManager) httpClient.getHttpConnectionManager()).shutdown();
} catch (Exception e) {
}
httpClient = null;
}
}
return result;
}
public void doUpload(){
// String zipPath = "C:/Users/ivanl/Desktop/影像系统/ECM4.0Demo/ECM4.0Demo/第三方上传/1111.zip";
String zipPath = PropertiesUtil.get("fileSavePathTemp")+"/"+flowUnid+".zip";
try {
AutoScanApi autoScanApi = new AutoScanApi(PropertiesUtil.get("service_ip"),8088,PropertiesUtil.get("secret_id")+"#"+PropertiesUtil.get("secret_key"));
String result = autoScanApi.ScanImageFile(appCode, zipPath);
String returnCode = result.substring(0,result.indexOf("@"));
String returnMsg = result.substring(result.indexOf("@")+1,result.length()+1);
intoLog(returnCode,returnMsg);
} catch (Exception e) {
e.printStackTrace();
}
}
public void intoLog(String code ,String msg) {
Transaction transaction = null;
Transaction.createTransaction("als");
SqlObject so = null;
try {
so = new SqlObject("insert into icms_upload_log (id,flowunid,path,code,msg,inputtime) values ()");
transaction.executeSQL(so);
transaction.commit();
} catch (Exception e) {
e.printStackTrace();
}
}
public void upload() throws Exception {
/**
* 1.找出需要上传的影像
* 3.在指定路径添加对应xml文件
* 4.打包上传
* 5.删除复制文件和打包文件
*/
FileOutputStream fos = new FileOutputStream(new File(PropertiesUtil.get("fileSavePathTemp")+"/"+flowUnid+".zip"));
ZipUtils zdo = new ZipUtils();
zdo.toZip(copyFile(),fos);
}
/**
* 上传成功后再删除
*/
public void deleteTemp(){
File f = new File(PropertiesUtil.get("fileSavePathTemp"));
if(f.length()!=0){
ZipUtils zdo = new ZipUtils();
zdo.deleteFile(f,false);
}
}
public List<File> copyFile() throws Exception {
List<File> files = new ArrayList<>();
BizObjectManager bom = JBOFactory.getBizObjectManager(LB_DOC_CONTRACT_LIST.CLASS_NAME);
List<BizObject> bos = bom.createQuery("sign_type='COMPLETE' and file_flag='yes' and project_id=:projectId and flow_unid=:flowUnid")
.setParameter("projectId",projectId).setParameter("flowUnid",flowUnid).getResultList(false);
for(BizObject bo : bos){
String filePath = bo.getAttribute("fullpath").toString();
File file = new File(filePath);
files.add(file);
}
//todo 加上xml文件
createXMl();
File fileXML = new File("xmlpath");
files.add(fileXML);
return files;
}
public void createXMl() throws Exception {
String appCode = "BQCW-000010";
String appName = "签约文件";
this.setAppCode(appCode);
this.setAppName(appName);
this.setBusiNo(flowUnid);
String xml = getRequestXML();
SAXReader saxReader = new SAXReader();
Document document;
try {
document = saxReader.read(new ByteArrayInputStream(xml.getBytes(StandardCharsets.UTF_8)));
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("UTF-8");
XMLWriter writer = new XMLWriter(new FileWriter(new File(PropertiesUtil.get("fileSavePathTemp")+"/"+flowUnid+".xml")),format);
writer.write(document);
writer.close();
} catch (DocumentException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}