2018-07-19 20:44:43 +08:00

196 lines
8.1 KiB
Java

package com.tenwa.app.baseFileTemplate.handle;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import jbo.app.tenwa.doc.LB_DOCRELATIVE;
import jbo.app.tenwa.doc.LB_DOC_CONTRACT_LIST;
import jbo.com.tenwa.entity.comm.officetempalte.BF_TEMPLATE;
import jbo.com.tenwa.lease.comm.LB_CONTRACT_TEMPLATE;
import com.amarsoft.are.jbo.BizObject;
import com.amarsoft.are.jbo.BizObjectManager;
import com.amarsoft.are.jbo.JBOException;
import com.amarsoft.are.jbo.JBOFactory;
import com.amarsoft.are.jbo.JBOTransaction;
import com.amarsoft.are.util.json.JSONDecoder;
import com.amarsoft.are.util.json.JSONObject;
import com.amarsoft.awe.util.ASResultSet;
import com.amarsoft.awe.util.SqlObject;
import com.amarsoft.awe.util.Transaction;
import com.amarsoft.dict.als.manage.NameManager;
import com.tenwa.comm.exception.BusinessException;
import com.tenwa.comm.util.jboutil.DataOperatorUtil;
import com.tenwa.doc.action.DocListAction;
import com.tenwa.officetempalte.service.CreateOfficeService;
import com.tenwa.officetempalte.util.FileOperatorUtil;
import com.tenwa.reckon.util.UUIDUtil;
public class FileTemplateUtil {
public String templateCalss;//模板文件分类
public String templateNo;//模板编号
public String templateParam; //模板参数
public String templateIds;//要生成的合同模板
public String flowunid;//用于查询已经生成的合同
public String leasform;//用判断租赁方式
public String getTemplateCalss() {return templateCalss;}
public void setTemplateCalss(String templateCalss) {this.templateCalss = templateCalss;}
public String getTemplateNo() {
return templateNo;
}
public void setTemplateNo(String templateNo) {
this.templateNo = templateNo;
}
public String getTemplateParam() {
return templateParam;
}
public void setTemplateParam(String templateParam) {
this.templateParam = templateParam;
}
public String getTemplateIds() {
return templateIds;
}
public void setTemplateIds(String templateIds) {
this.templateIds = templateIds;
}
public String getFlowunid() {
return flowunid;
}
public void setFlowunid(String flowunid) {
this.flowunid = flowunid;
}
public String getLeasform() {
return leasform;
}
public void setLeasform(String leasform) {
this.leasform = leasform;
}
public String getTemplateClass(Transaction Sqlca) throws Exception{
String fileClass=templateCalss.replaceAll("@", ",");
List<String>tempFiles=new ArrayList<String>();
JSONObject classJson=JSONDecoder.decode(fileClass);
Map<String,String>sercharMap=FileOperatorUtil.getJsonObjectToMap(classJson);
String ONECLASSIFY=sercharMap.get("oneclassify");
if (ONECLASSIFY==null || ONECLASSIFY.length()<=0){
sercharMap.put("ONECLASSIFY", "invalid");// 在此人为加上该标记,以防一级分类没有选择的情况下加载所有模板,而导致不同产品之间可以相互生成合同
}
Map<String,String> sercharMapD=new HashMap<String,String>();
String value=null;
for(String key:sercharMap.keySet()){
value=sercharMap.get(key);
if(value !=null && value.length()>0){
sercharMapD.put(key, value);
}
}
String sql="SELECT id,TEMPLATENAME FROM BF_TEMPLATE WHERE ";
sql=sql+DataOperatorUtil.getQuerySql(sercharMapD)+"";
ASResultSet rs = null;
SqlObject asql = new SqlObject(sql);
asql = new SqlObject(sql);
for(String key:sercharMapD.keySet()){
asql.setParameter(key, sercharMapD.get(key));
}
rs = Sqlca.getASResultSet(asql);
while (rs.next()){
tempFiles.add("{'text':'"+rs.getString("templatename")+"','value':'"+rs.getString("id")+"'}");
}
String sReturn="[{'fileTemplate':\""+tempFiles.toString()+"\"}]";
// String sReturn="[{'fileTemplate':\""+"[{'text':'融资租赁合同-C端回租','value':'641c55a1168f4a488a5028ee68870156'}]"+"\"}]";
return sReturn;
}
public String getContractClass(Transaction Sqlca){
if("01".equals(leasform)){
/*return "[{'fileTemplate':\""+"[{'text':'融资租赁合同-C端直租','value':'24aba365e2794a018814ae81341486bf'},"
+ "{'text':'直租个人授权协议书','value':'3334eed6051248b88cd4f2a22e93ac96'},]"+"\"}]";*/
return "[{'fileTemplate':\""+"[{'text':'合同(直租)','value':'24aba365e2794a018814ae81341486bf'}]"+"\"}]";
}else{
/*return "[{'fileTemplate':\""+"[{'text':'融资租赁合同-C端回租','value':'641c55a1168f4a488a5028ee68870156'},"
+ "{'text':'回租个人授权协议书','value':'e980635a77124d5598be1717c062b877'},"
+ "{'text':'抵押合同','value':'ec90c114914d4725b57729107888511c'}]"+"\"}]";*/
return "[{'fileTemplate':\""+"[{'text':'合同(售后回租)','value':'641c55a1168f4a488a5028ee68870156'}]"+"\"}]";
}
}
public String createContractTemplate(JBOTransaction tx) throws Exception{
List<String> message=new ArrayList<String>();
String[] tempids=this.getTemplateIds().split("&");
//生成参数
String sTemplateParam=this.getTemplateParam().replaceAll("@", ",");
JSONObject paramJson=JSONDecoder.decode(sTemplateParam);
Map<String,String>sourceMap=FileOperatorUtil.getJsonObjectToMap(paramJson);
CreateOfficeService officeSer=new CreateOfficeService(tx);
for(int i=0;i<tempids.length;i++){
BizObjectManager bmbt = JBOFactory.getBizObjectManager(BF_TEMPLATE.CLASS_NAME);
tx.join(bmbt);
BizObject bobt=bmbt.createQuery("id=:id").setParameter("id",tempids[i]).getSingleResult(false);
String TWO_CLASSIFY = bobt.getAttribute("TWOCLASSIFY").toString();
String THREE_CLASSIFY = bobt.getAttribute("THREECLASSIFY").toString();
String FOUR_CLASSIFY = bobt.getAttribute("FOURCLASSIFY").toString();
String TEMPLATEVERSION = bobt.getAttribute("TEMPLATEVERSION").toString();
if(bobt==null||TWO_CLASSIFY==null||THREE_CLASSIFY==null||FOUR_CLASSIFY==null||TEMPLATEVERSION==null){
message.add(NameManager.getItemName("ProductContractTemplate", THREE_CLASSIFY)+"未找到模板配置!");
}else{
// 保存LB_CONTRACT_TEMPLATE表
BizObjectManager bm = JBOFactory.getBizObjectManager(LB_CONTRACT_TEMPLATE.CLASS_NAME);
tx.join(bm);
BizObject bo = bm.newObject();
String id=UUIDUtil.getUUID();
bo.setAttributeValue("id", id);
bo.setAttributeValue("ONE_CLASSIFY", TWO_CLASSIFY);
bo.setAttributeValue("TWO_CLASSIFY", THREE_CLASSIFY);
bo.setAttributeValue("THREE_CLASSIFY", FOUR_CLASSIFY);
bo.setAttributeValue("FOUR_CLASSIFY", TEMPLATEVERSION);
// bo.setAttributeValue("CONTRACT_NUMBER", boc.getAttribute("CONTRACT_NUMBER").getString());
bo.setAttributeValue("CONTRACT_ID", sourceMap.get("CONTRACT_ID"));
bo.setAttributeValue("FLOWUNID", sourceMap.get("FLOW_UNID"));
bm.saveObject(bo);
bo.getKey();
try{
// sourceMap.put("contract_id", bo.getAttribute("contract_number").getString());
sourceMap.put("TEMPLATE_ID", id);
BizObject rela=JBOFactory.createBizObjectQuery(LB_DOCRELATIVE.CLASS_NAME,"TEMPLATE_ID=:tempid").setParameter("tempid", tempids[i]).getSingleResult(false);
if(rela!=null){
DocListAction doc=new DocListAction();
doc.setRelativeId(rela.getAttribute("id").getString());
doc.deleteRelative(tx);
}
officeSer.createOfficeByTemplateNo(bobt.getAttribute("id").getString(), sourceMap);
}catch(BusinessException e){
message.add(e.getMessage());
}
}
}
return message.toString();
}
public String jiaoyan(JBOTransaction tx) throws Exception{
String docName="";
String[] bfids = templateIds.split("&");
BizObjectManager btManager = JBOFactory.getBizObjectManager(BF_TEMPLATE.CLASS_NAME);
BizObjectManager ldclManager = JBOFactory.getBizObjectManager(LB_DOC_CONTRACT_LIST.CLASS_NAME);
List<BizObject> ldcls = ldclManager.createQuery("select * from O where file_flag='yes' and flow_unid=:flowunid").setParameter("flowunid", flowunid).getResultList(false);
for(int i=0;i<bfids.length;i++){
BizObject templatename = btManager.createQuery("select templatename from O where id=:id").setParameter("id", bfids[i]).getSingleResult(false);
for(BizObject ldcl:ldcls){
if((templatename.getAttribute("templatename").toString()).equals(ldcl.getAttribute("doc_name").getString())){
docName=docName+templatename.getAttribute("templatename").toString()+";";
}
}
}
if(docName.length()>0){
docName=docName+"已存在,请先删除后再生成!";
}
return docName;
}
}