更新扣款卡信息变更发起电子签约

This commit is contained in:
tangfutang 2018-08-08 19:12:06 +08:00
parent 6a2d2b708f
commit 81d7d693fe
3 changed files with 264 additions and 8 deletions

View File

@ -20,15 +20,20 @@
//0、是否展示 1、 权限控制 2、 展示类型 3、按钮显示名称 4、按钮解释文字 5、按钮触发事件代码 6、 7、 8、 9、图标CSS层叠样式 10、风格
String sButtons[][] = {
{"true","All","Button","生成模板","生成模板","generatepdf()","","","",""},
{"true","All","Button","发起电子签约","查看/修改详情","stamp()","","","",""},
{"true","All","Button","查询签约结果","查看/修改详情","","","","",""},
{"true","All","Button","重新发送短息","查看/修改详情","","","","","btn_icon_refresh"},
{"true","All","Button","发起电子签约","发起电子签约","stamp()","","","",""},
{"true","All","Button","查询签约结果","查询签约结果","getStatus()","","","",""},
{"true","All","Button","重新发送短息","重新发送短息","sendMessageAgain()","","","","btn_icon_refresh"},
};
//sButtonPosition = "north";
%><%@include file="/Frame/resources/include/ui/include_list.jspf"%>
<script type="text/javascript">
function generatepdf(){
var results = RunJavaMethodTrans("com.tenwa.action.channelportal.businesshanding.contractaward.ContractAward","selectStatus","FlowUnid="+"<%=flowunid%>"+",contract_id="+"<%=contractid%>");
if("1"!=results || "2"!=results){
alert("已发起电子签约,无法再次生成扣款书!!!");
return ;
}
var param={};
var tempParam={};
var sparam="";
@ -56,16 +61,62 @@
}
function stamp(){
var results = RunJavaMethodTrans("com.tenwa.action.channelportal.businesshanding.contractaward.ContractAward","selectStatus","FlowUnid="+"<%=flowunid%>"+",contract_id="+"<%=contractid%>");
if("1"==results){
alert("请先生成扣款书!!!");
return ;
}else if("2"!=results){
alert("已发起电子签约,无需重复发起!!!");
return ;
}
var result=RunJavaMethodTrans("com.tenwa.channelportal.action.ContractSignAction","changeCarSignA","FlowUnid="+"<%=flowunid%>"+",contract_id="+"<%=contractid%>"+",flagType=changeCar");
if("success"==result){
alert("发起电子签约成功!!!");
location.reload();
}else{
alert("发起电子签约失败!!!");
}
}
}
//查询电子签约状态
function getStatus(){
var results = RunJavaMethodTrans("com.tenwa.action.channelportal.businesshanding.contractaward.ContractAward","selectStatus","FlowUnid="+"<%=flowunid%>"+",contract_id="+"<%=contractid%>");
if("1"==results || "2"==results){
alert("请先发起电子签约!!!");
return ;
}
if("4"==results){
alert("电子签约已完成!!!");
return ;
}
var sParams="FlowUnid="+"<%=flowunid%>"+",contract_id="+"<%=contractid%>";
var sReturn=RunJavaMethodTrans("com.tenwa.channelportal.action.ContractSignAction","changeCarSignStatus",sParams);
AsDebug.showMessage("提示",sReturn,"","",true,'','','',function(){
window.location.reload();
});
}
//重新发送短信
function sendMessageAgain(){
var results = RunJavaMethodTrans("com.tenwa.action.channelportal.businesshanding.contractaward.ContractAward","selectStatus","FlowUnid="+"<%=flowunid%>"+",contract_id="+"<%=contractid%>");
if("1"==results || "2"==results){
alert("请先发起电子签约!!!");
return ;
}
if("4"==results){
alert("已完成电子签约,无法重新发送短信!!!");
return ;
}
var sParams="FlowUnid="+"<%=flowunid%>"+",contract_id="+"<%=contractid%>";
var sReturn = RunJavaMethodTrans("com.tenwa.channelportal.action.ContractSignAction","ChangesendMessageAgain",sParams);
if("success"==sReturn){
AsDebug.showMessage("提示","短信发送成功!","","",true);
}else{
AsDebug.showMessage("提示","短信发送失败!["+sReturn+"]","","",true);
}
}
//在加载完表格后调用
function afterSearch(){
for(var i=0;i<getRowCount(0);i++){

View File

@ -1078,6 +1078,82 @@ public class ContractSignAction{
return status;
}
}
/**
* 获取扣款卡信息变革电子签约状态
*
* @throws Exception
*/
public String changeCarSignStatus(JBOTransaction tx) throws Exception {
requestService = (HttpRequestAppService) factory.create(HttpRequestAppService.class, this.getConfigRequestUrl());
BizObjectManager clBom = JBOFactory.getBizObjectManager(CODE_LIBRARY.CLASS_NAME, tx);
BizObjectManager ldlMange = JBOFactory.getBizObjectManager(LB_DOCLIBRARY.CLASS_NAME, tx);
BizObjectManager ldMange = JBOFactory.getBizObjectManager(LB_DOCRELATIVE.CLASS_NAME, tx);
BizObjectManager lulMange = JBOFactory.getBizObjectManager(LB_UNION_LESSEE.CLASS_NAME, tx);
BizObjectManager ldaMange = JBOFactory.getBizObjectManager(LB_DOCATTRIBUTE.CLASS_NAME, tx);
BizObject lul = lulMange.createQuery("CONTRACT_ID=:contractid").setParameter("contractid",contract_id).getSingleResult(false);
String status = "";
String peopleStatus="";
String sql = "OBJECTTYPE='ChangeCar' and FLOW_UNID=:flowunid and CONTRACT_ID=:contractid ";
@SuppressWarnings("unchecked")
BizObject ldb = ldMange.createQuery(sql).setParameter("flowunid",FlowUnid).setParameter("contractid",contract_id).getSingleResult(true);
BizObject lda = null;
if (ldb != null) {
boolean flag = true;
Map<String, String> map = new HashMap<String, String>();
map.put(ldb.getAttribute("TEMPLATE_ID").toString(),lul.getAttribute("CUSTOMER_NAME").toString());
for (String key : map.keySet()) {
try {
String signStatu = requestService.getContractSignStatus(key);
int index = signStatu.indexOf("$");
String signStatus = signStatu.substring(0, index);
peopleStatus = signStatu.substring(index+1);
String signStatusName =
clBom.createQuery("itemno='" + signStatus + "'").getSingleResult(false).getAttribute("itemname").toString();
BizObject ldl = ldlMange.createQuery("RELATIVE_ID=:relativeid").setParameter("relativeid", ldb.getAttribute("ID").getString()).getSingleResult(false);
lda = ldaMange.createQuery("LIBRARY_ID=:libraryid").setParameter("libraryid", ldl.getAttribute("ID").getString()).getSingleResult(true);
if (signStatu.indexOf("已签署")>0) {
signStatus = "REQUIRED";
}else{
flag = false;
}
if ("REQUIRED".equals(signStatus)) {
status += ";<br>客户" + map.get(key) + "签约状态:已签名";
} else {
status += ";<br>客户" + map.get(key) + "签约状态:" + signStatusName;
}
} catch (Exception e) {
e.printStackTrace();
return "获取签约状态失败!";
}
}
// 合同签约已完成
if (flag) {
lda.setAttributeValue("REMARK", "COMPLETE");// 状态改成已完成电子签约
ldaMange.saveObject(lda);
status = ";<br>已经完成电子签约";
changedownloadDoc(tx);
}
}
if (status.length() < 1) {
return "获取签约状态失败,没有合同文件";
} else {
status = status.substring(5);
String[] peopleStat = peopleStatus.split(",");
if(peopleStat.length>1){
status = status+"<br>";
for(int i=0;i<peopleStat.length;i++){
String[] stat = peopleStat[i].split("@");
status = status+stat[0]+":"+stat[1]+";";
}
}
return status;
}
}
/**
* 获取电子签约状态
*待完善
@ -1207,6 +1283,62 @@ public class ContractSignAction{
return "success";
}
/**
* 扣款卡信息变更根据document_id下载合同
*
* @param tx
* @return
* @throws Exception
* @throws MalformedURLException
*/
public String changedownloadDoc(JBOTransaction tx) throws MalformedURLException, Exception {
requestService = (HttpRequestAppService) factory.create(HttpRequestAppService.class, this.getConfigRequestUrl());
BizObjectManager ldMange = JBOFactory.getBizObjectManager(LB_DOCRELATIVE.CLASS_NAME, tx);
String sql = "OBJECTTYPE='ChangeCar' and FLOW_UNID=:flowunid and CONTRACT_ID=:contractid ";
@SuppressWarnings("unchecked")
BizObject ldb = ldMange.createQuery(sql).setParameter("flowunid",FlowUnid).setParameter("contractid",contract_id).getSingleResult(true);
BizObjectManager clBom = JBOFactory.getBizObjectManager(LB_DOCLIBRARY.CLASS_NAME, tx);
try {
if (ldb != null) {
BizObject ldl = clBom.createQuery("RELATIVE_ID=:relativeid").setParameter("relativeid", ldb.getAttribute("ID").getString()).getSingleResult(false);
BizObjectManager ldaMange = JBOFactory.getBizObjectManager(LB_DOCATTRIBUTE.CLASS_NAME, tx);
BizObject lda = ldaMange.createQuery("LIBRARY_ID=:libraryid").setParameter("libraryid", ldl.getAttribute("ID").getString()).getSingleResult(false);
Map<String, String> map = new HashMap<String, String>();
map.put(ldl.getAttribute("REMARK").toString(), lda.getAttribute("FULLPATH").toString());
Map<String, String> result = requestService.downloadDoc(map);
if (!result.containsKey("error")) {
for (String contractId : map.keySet()) {
try {
if ("success".equals(result.get(contractId))) {
String fileString = result.get("file_" + contractId);
InputStream fileInput = BASE64.encodeFileToBase64(fileString);
OutputStream fileOut = new FileOutputStream(map.get(contractId));// TODO
byte[] buffByte = new byte[1024];
int size = 0;
while ((size = fileInput.read(buffByte)) != -1) {
fileOut.write(buffByte, 0, size);
}
fileInput.close();
fileOut.close();
} else if ("error".equals(result.get(contractId))) {
return "error";
}
} catch (Exception e) {
e.printStackTrace();
}
}
return "success";
} else {
return "error";
}
}
} catch (Exception e) {
return "error";
}
return "success";
}
//扣款卡变更下载合同
public String downloadDocContract(JBOTransaction tx) throws MalformedURLException, Exception {
requestService = (HttpRequestAppService) factory.create(HttpRequestAppService.class, this.getConfigRequestUrl());
@ -1803,6 +1935,52 @@ public String sendMessageAgain(JBOTransaction tx) {
return "error";
}
}
/*
* 扣款卡信息变更重新发送短信
* */
public String ChangesendMessageAgain(JBOTransaction tx) {
try{
requestService = (HttpRequestAppService) factory.create(HttpRequestAppService.class, this.getConfigRequestUrl());
List<BizObject> bo = null;
String file = new String();
Map<String,String> contractmap = new HashMap<String,String>();
List<String> list = new ArrayList<String>();
BizObjectManager ldMange = JBOFactory.getBizObjectManager(LB_DOCRELATIVE.CLASS_NAME, tx);
String status = "";
String peopleStatus="";
String sql = "OBJECTTYPE='ChangeCar' and FLOW_UNID=:flowunid and CONTRACT_ID=:contractid ";
@SuppressWarnings("unchecked")
BizObject ldb = ldMange.createQuery(sql).setParameter("flowunid",FlowUnid).setParameter("contractid",contract_id).getSingleResult(true);
if(ldb!=null){
String singcontractid = ldb.getAttribute("TEMPLATE_ID").toString();
contractmap.put(singcontractid, "直租个人授权协议书.pdf");
}
list.addAll(contractmap.keySet());
Map<String,String> map = requestService.sendNotice(list);
if(!map.containsKey("error")){
return "success";
}else{
for(String singcontractid:map.keySet()){
String sendStatus = map.get(singcontractid);
if("2"==sendStatus){
file += contractmap.get(singcontractid)+";";
}
}
return file;
}
} catch (Exception e) {
try {
tx.rollback();
} catch (JBOException e1) {
e1.printStackTrace();
}
e.printStackTrace();
return "error";
}
}
public String getProcess(JBOTransaction tx){
try {
BizObjectManager contBom = JBOFactory.getBizObjectManager(LB_DOC_CONTRACT_LIST.CLASS_NAME,tx);
@ -2076,13 +2254,15 @@ public String claimSign(JBOTransaction tx) throws Exception {
for (String key : resultMap.keySet()) {
if (key.indexOf("contract_") == -1) {
// DOCRELATIVE.setAttributeValue("SINGCONTRACT_ID",resultMap.get("contract_" + key));
DOCRELATIVE.setAttributeValue("TEMPLATE_ID", resultMap.get(key));
library.setAttributeValue("REMARK", "SIGNING");
DOCRELATIVE.setAttributeValue("TEMPLATE_ID", resultMap.get("contract_" + key));
library.setAttributeValue("REMARK",resultMap.get(key));
bo.setAttributeValue("REMARK","SIGNING");
contract_id = resultMap.get(key);
}
}
bom.saveObject(DOCRELATIVE);
bom1.saveObject(library);
contBom.saveObject(bo);
tx.commit();
} else {
return "error";

View File

@ -8,6 +8,7 @@ import java.util.Map;
import jbo.app.tenwa.calc.LC_PROJ_CONDITION;
import jbo.app.tenwa.doc.LB_DOCATTRIBUTE;
import jbo.app.tenwa.doc.LB_DOCLIBRARY;
import jbo.app.tenwa.doc.LB_DOCRELATIVE;
import jbo.app.tenwa.doc.LB_DOC_CONTRACT_LIST;
import jbo.com.tenwa.lease.carbrand.BUSINESS_STATUS;
import jbo.com.tenwa.lease.carbrand.VI_CONTRACTMAKEPRINTLIST;
@ -562,4 +563,28 @@ public String setProjectStatus(JBOTransaction tx) throws Exception{
}
return "success";
}
public String selectStatus(JBOTransaction tx) throws Exception{
BizObjectManager ldrManage = JBOFactory.getBizObjectManager(LB_DOCRELATIVE.CLASS_NAME, tx);
BizObjectManager ldlManage = JBOFactory.getBizObjectManager(LB_DOCLIBRARY.CLASS_NAME, tx);
BizObjectManager ldaManage = JBOFactory.getBizObjectManager(LB_DOCATTRIBUTE.CLASS_NAME, tx);
BizObject ldr = ldrManage.createQuery("OBJECTTYPE='ChangeCar' and FLOW_UNID=:flowunid and CONTRACT_ID=:contractid ").setParameter("flowunid",FlowUnid).setParameter("contractid",contract_id).getSingleResult(false);
if(ldr != null){
String singID = ldr.getAttribute("TEMPLATE_ID").getString();
if(singID.length()>0){
BizObject ldl = ldlManage.createQuery("RELATIVE_ID=:relativeid").setParameter("relativeid", ldr.getAttribute("ID").getString()).getSingleResult(false);
BizObject lda = ldaManage.createQuery("LIBRARY_ID=:libraryid").setParameter("libraryid", ldl.getAttribute("ID").getString()).getSingleResult(false);
String singStatus = lda.getAttribute("REMARK").getString();
if("SIGNING".equals(singStatus)){
return "3";
}else{
return "4";
}
}else{
return "2";
}
}else{
return "1";
}
}
}