1.文件下载导入改为新增的方法来实现,解决414报错

This commit is contained in:
zhangbb 2020-05-28 18:11:19 +08:00
parent 534b0cbda1
commit b5ca925d15
3 changed files with 180 additions and 3 deletions

View File

@ -445,6 +445,19 @@ AsControl.RunJavaMethodSqlca = function (ClassName,MethodName,Args) {
AsControl.RunJavaMethodTrans = function (ClassName,MethodName,Args) {
return AsControl.GetJavaMethodReturn(AsControl.CallJavaMethod(ClassName,MethodName,Args,"&ArgsObject=Trans"),ClassName);
};
/**
* 运行后台java方法
* @param ClassName 类路径字符串且必须有空构造
* @param MethodName 调用方法名称没有形参且返回值必须是String类型
* @param Args 参数格式为Field1=Value1,Field2=Value2,...,FieldN=ValueN对应的ClassName中必须有方法setField1(String)setField2(String)... setFieldN(String)
* @param Sychronized false同步;true异步
* @returns {String} 后台方法返回的字符串或异常信息
*/
AsControl.RunJavaMethodTransAsynch = function (ClassName,MethodName,Args,Sychronized) {
return AsControl.CallJavaMethodAsynch(ClassName,MethodName,Args,"&ArgsObject=Trans",Sychronized);
};
/**
* 重写自定义流程方法请叫我张幕庆
*/
@ -512,6 +525,26 @@ AsControl.RewriteCallJavaMethod = function (ClassName,MethodName,Args,ArgsObject
}).responseText.trim());
};
AsControl.CallJavaMethodAsynch = function (ClassName,MethodName,Args,ArgsObjectText,Sychronized) {
if(Args.length>0){
Args=Args+AsControl.getParamToFixedParam(Args);
}
jQuery.ajax({
type: "POST",
url: sWebRootPath+"/servlet/run?1=1"+ArgsObjectText,
data : {
"ClassName":ClassName,
"MethodName":MethodName,
"Args":Args.replace(/\+/g, 'Ж').replace(/\%/g, 'ё')
},
async: Sychronized,
error: AsControl.ajaxError,
success:function(result){
// AsDebug.showMessage("提示",result.replace("00000000",""),"","",true);
}
});
return "true";
};
AsControl.getParamToFixedParam = function(Args) {
var params=Args.split(",");
@ -618,6 +651,7 @@ function OpenPage(sURL,sTargetWindow,sStyle) {return AsControl.OpenPageOld(sURL,
function RunJavaMethod(ClassName,MethodName,Args) {return AsControl.RunJavaMethod(ClassName,MethodName,Args);}
function RunJavaMethodSqlca(ClassName,MethodName,Args) {return AsControl.RunJavaMethodSqlca(ClassName,MethodName,Args);}
function RunJavaMethodTrans(ClassName,MethodName,Args) {return AsControl.RunJavaMethodTrans(ClassName,MethodName,Args);}
function RunJavaMethodTransAsynch(ClassName,MethodName,Args,Sychronized) {return AsControl.CallJavaMethodAsynch(ClassName,MethodName,Args,Sychronized);}
function PopPageAjax(sURL,sTargetWindow,sStyle){return AsControl.RunJspOne(sURL);}
function RunJspAjax(sURL,sTargetWindow,sStyle){return AsControl.RunJspOne(sURL);}
function RunMethod(ClassName,MethodName,Args){return AsControl.RunASMethod(ClassName,MethodName,Args); }
@ -1169,4 +1203,6 @@ function setObjectValuePretreat(sObjectType,sParaString,sValueString,iArgDW,iArg
}
}
AsDialog.setObjectValue(sObjectType,sParaString,sValueString,iArgDW,iArgRow,sStyle);
}
}

View File

@ -68,11 +68,15 @@
alert("文件保存路径未配置");
return;
}
var sUrl = "/Tenwa/Core/FlowManager/CopyFileToOther.jsp";
sParam = sParam.replace(/@~/g, "");
var param = "contractNos="+contractNos+",batchNos="+batchNos+",userid="+"<%=userid%>"+",fileSavePath="+fileSavePath+",fileList="+sParam;
<%-- var sUrl = "/Tenwa/Core/FlowManager/CopyFileToOther.jsp";
var param = "contractNos="+contractNos+"&batchNos="+batchNos+"&userid="+"<%=userid%>"+"&sParam="+sParam+"&fileSavePath="+fileSavePath;
AsControl.RunJsp(sUrl,param,function(result){
var messageResult=RunJavaMethodTrans("com.tenwa.comm.message.controller.BaseBussinessMessage","saveBaseMessageSimple","messageId="+"3389471a244d41e584232854c8526f6b");
});
}); --%>
AsControl.RunJavaMethodTransAsynch("com.tenwa.reckon.copydata.CopyFileToOther", "runCopy", param, true);
}
function newRecord(){

View File

@ -0,0 +1,137 @@
package com.tenwa.reckon.copydata;
import java.io.File;
import java.io.FileOutputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID;
import jbo.app.tenwa.doc.LC_COPYFILE_LOG;
import com.amarsoft.are.jbo.BizObject;
import com.amarsoft.are.jbo.BizObjectManager;
import com.amarsoft.are.jbo.JBOFactory;
import com.amarsoft.are.jbo.JBOTransaction;
import com.amarsoft.are.util.StringFunction;
import com.tenwa.comm.message.controller.BaseBussinessMessage;
import com.tenwa.officetempalte.action.CreateOfficeAction;
import com.tenwa.officetempalte.exportcallback.impl.ZipUtils;
public class CopyFileToOther {
private String contractNos;
private String batchNos;
private String userid;
private String fileList;
private String templateNo="8c0b32eefcf349e5b5f76d898df0bbbb";
private String fileSavePath;
public String runCopy(JBOTransaction tx) throws Exception{
//创建临时路径
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
String time = sdf.format(new Date());
String uuid=UUID.randomUUID().toString().replaceAll("-", "");
String fileSavePath_temp = fileSavePath+"/"+time+uuid;
FileCopyToOtherPath cp = new FileCopyToOtherPath();
cp.setContractNos(contractNos);
cp.setBatchNos(batchNos);
cp.setUserid(userid);
cp.setFileSavePath_temp(fileSavePath_temp);
CreateOfficeAction coa = new CreateOfficeAction();
//JBOTransaction tx = JBOFactory.createJBOTransaction();
if(fileList.contains("PayFileList")){
cp.copyFile("PayFileList");
}
if(fileList.contains("FileList")){
cp.copyFile("FileList");
}
if(fileList.contains("Other")){
cp.copyFile("Other");
}
if(fileList.contains("RentPlan")){
String[] contractNoArray = contractNos.split("@");
String[] batchNoArray = batchNos.split("@");
for(int i=0;i<contractNoArray.length;i++){
String fileSavePath_xml = fileSavePath_temp+"/"+contractNoArray[i]+"/";
String templateParam = "{\"OBJECTTYPE\":\"租金支付表导出\"@\"CurUserId\":\""+userid+"\"@\"fileSavePath\":\""+fileSavePath_xml+"\"@\"CONTRACT_NO\":\""+contractNoArray[i]+"\"}";
File temDir = new File(fileSavePath_xml);
if(!temDir.exists()){
temDir.mkdirs();
}
coa.setTemplateNo(templateNo);
coa.setTemplateParam(templateParam);
String result = coa.createOfficeByTemplate(tx);
if("success".equals(result)){
BizObjectManager bom = JBOFactory.getBizObjectManager(LC_COPYFILE_LOG.CLASS_NAME);
BizObject nbom = bom.newObject();
nbom.setAttributeValue("CONTRACT_NO", contractNoArray[i]);
nbom.setAttributeValue("BATCH_NO", batchNoArray[i]);
nbom.setAttributeValue("COPY_TYPE","租金计划");
nbom.setAttributeValue("INPUTTIME",StringFunction.getTodayNow());
nbom.setAttributeValue("INPUTUSERID",userid);
bom.saveObject(nbom);
}
}
}
tx.commit();
//压缩
FileOutputStream fos1 = new FileOutputStream(new File(fileSavePath+"/"+time+".zip"));
ZipUtils zdo = new ZipUtils();
zdo.toZip(fileSavePath_temp, fos1, true);
//删除原文件
File f = new File(fileSavePath_temp);
if(f.length()!=0){
//压缩完毕后删除文件发送通知消息
zdo.deleteFile(f);
BaseBussinessMessage bbm = new BaseBussinessMessage();
bbm.setMessageId("3389471a244d41e584232854c8526f6b");
bbm.saveBaseMessageSimple(tx);
}
return null;
}
public String getContractNos() {
return contractNos;
}
public void setContractNos(String contractNos) {
this.contractNos = contractNos;
}
public String getBatchNos() {
return batchNos;
}
public void setBatchNos(String batchNos) {
this.batchNos = batchNos;
}
public String getUserid() {
return userid;
}
public void setUserid(String userid) {
this.userid = userid;
}
public String getFileList() {
return fileList;
}
public void setFileList(String fileList) {
this.fileList = fileList;
}
public String getFileSavePath() {
return fileSavePath;
}
public void setFileSavePath(String fileSavePath) {
this.fileSavePath = fileSavePath;
}
}