apzl_leasing/src_tenwa/com/tenwa/flow/bussinessapprove/BussinessStatusAndDetailAction.java
2018-07-23 15:47:57 +08:00

116 lines
6.4 KiB
Java

package com.tenwa.flow.bussinessapprove;
import java.text.SimpleDateFormat;
import java.util.Date;
import jbo.com.tenwa.lease.carbrand.BUSINESS_STATUS;
import jbo.com.tenwa.lease.comm.LB_CONTRACT_INFO;
import jbo.com.tenwa.lease.comm.LB_PROJECT_INFO;
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.amarsoft.awe.util.ASResultSet;
import com.amarsoft.awe.util.SqlObject;
import com.amarsoft.awe.util.Transaction;
import com.amarsoft.context.ASUser;
import com.tenwa.reckon.util.UUIDUtil;
/**
* 更新业务状态与业务详情表记录
* @author jianghd
*
*/
public class BussinessStatusAndDetailAction {
//1.后续随项目进行到一定阶段时对业务状态与详情的处理
public static String stageRun(JBOTransaction tx,String CurUserID,String ProjectIdOrContractId,String statusCode) throws Exception{
BizObjectManager bsBom = JBOFactory.getBizObjectManager(BUSINESS_STATUS.CLASS_NAME,tx);
Transaction tran = Transaction.createTransaction(tx);
ASUser user = ASUser.getUser(CurUserID, tran);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd hh:mm:ss");
String now = sdf.format(new Date(System.currentTimeMillis()));
SqlObject lpi = new SqlObject("SELECT LPI.CONTRACT_NUMBER FROM LB_PROJECT_INFO LPI WHERE LPI.ID='"+ProjectIdOrContractId+"'");
SqlObject lci = new SqlObject("SELECT LPI.CONTRACT_NUMBER FROM LB_CONTRACT_INFO LPI WHERE LPI.ID='"+ProjectIdOrContractId+"'");
ASResultSet ass = tran.getASResultSet(lpi);
String contractNumber = "";
SqlObject so;
String bStatus ="";
if(ass.next()){
contractNumber = ass.getString("CONTRACT_NUMBER");
bStatus = bsBom.createQuery("CONTRACT_NUMBER=:ContractNumber").setParameter("ContractNumber", contractNumber).getSingleResult(true).getAttribute("BUSINESS_STATUS").getString();
JBOFactory.getBizObjectManager(BUSINESS_STATUS.CLASS_NAME,tx)
.createQuery("UPDATE O SET BUSINESS_STATUS='"+statusCode+"',UPDATEUSERID='"+user.getUserID()+"',UPDATEORGID='"+user.getOrgID()+"',UPDATETIME='"+now+"' WHERE CONTRACT_NUMBER='"+contractNumber+"'").executeUpdate();
so = new SqlObject("INSERT INTO BUSINESS_DETAIL(ID,CONTRACT_NUMBER,BUSINESS_STATUS,INPUTUSERID,INPUTORGID,INPUTTIME,BEFORE_STATUS) SELECT SYS_GUID(),CONTRACT_NUMBER,'"+statusCode+"','"+user.getUserID()+"','"+user.getOrgID()+"','"+StringFunction.getTodayNow().replaceAll(":", "")+"','"+bStatus+"' FROM LB_PROJECT_INFO WHERE ID='"+ProjectIdOrContractId+"'");
so.setDebugSql(so.getDebugSql().replaceAll("", ":"));
so.setOriginalSql(so.getOriginalSql().replaceAll("", ":"));
so.setRunSql(so.getRunSql().replaceAll("", ":"));
tran.executeSQL(so);
}else{
ass = tran.getASResultSet(lci);
if(ass.next()){contractNumber = ass.getString("CONTRACT_NUMBER");}
BizObject bo = bsBom.createQuery("CONTRACT_NUMBER=:ContractNumber").setParameter("ContractNumber", contractNumber).getSingleResult(true);
if(bo!=null){
bStatus = bo.getAttribute("BUSINESS_STATUS").getString();
}else{//初始化BussinessStatus
bo = bsBom.newObject();
bo.setAttributeValue("BUSINESS_STATUS","1");
bo.setAttributeValue("CONTRACT_NUMBER",contractNumber);
bo.setAttributeValue("INPUTUSERID",user.getUserID());
bo.setAttributeValue("INPUTORGID",user.getOrgID());
bo.setAttributeValue("INPUTTIME",now);
bsBom.saveObject(bo);
bStatus = "1";
}
JBOFactory.getBizObjectManager(BUSINESS_STATUS.CLASS_NAME,tx)
.createQuery("UPDATE O SET BUSINESS_STATUS='"+statusCode+"',UPDATEUSERID='"+user.getUserID()+"',UPDATEORGID='"+user.getOrgID()+"',UPDATETIME='"+now+"' WHERE CONTRACT_NUMBER='"+contractNumber+"'").executeUpdate();
so = new SqlObject("INSERT INTO BUSINESS_DETAIL(ID,CONTRACT_NUMBER,BUSINESS_STATUS,INPUTUSERID,INPUTORGID,INPUTTIME,BEFORE_STATUS) SELECT SYS_GUID(),CONTRACT_NUMBER,'"+statusCode+"','"+user.getUserID()+"','"+user.getOrgID()+"','"+StringFunction.getTodayNow().replaceAll(":", "")+"','"+bStatus+"' FROM LB_CONTRACT_INFO WHERE ID='"+ProjectIdOrContractId+"'");
so.setDebugSql(so.getDebugSql().replaceAll("", ":"));
so.setOriginalSql(so.getOriginalSql().replaceAll("", ":"));
so.setRunSql(so.getRunSql().replaceAll("", ":"));
tran.executeSQL(so);
}
return "true";
}
//2.取消时的处理
public static String CancelRun(JBOTransaction tx,String CurUserID,String ProjectIdOrContractId,String delCode)throws Exception{
Transaction tran = Transaction.createTransaction(tx);
SqlObject lpi = new SqlObject("SELECT LPI.CONTRACT_NUMBER FROM LB_PROJECT_INFO LPI WHERE LPI.ID='"+ProjectIdOrContractId+"'");
SqlObject lci = new SqlObject("SELECT LPI.CONTRACT_NUMBER FROM LB_CONTRACT_INFO LPI WHERE LPI.ID='"+ProjectIdOrContractId+"'");
ASResultSet ass = tran.getASResultSet(lpi);
String contractNumber = "";
SqlObject so;
String bStatus ="";
if(ass.next()){
contractNumber = ass.getString("CONTRACT_NUMBER");
so = new SqlObject("select before_status from BUSINESS_DETAIL where CONTRACT_NUMBER='"+contractNumber+"' and BUSINESS_STATUS='"+delCode+"'");
ASResultSet rs = tran.getASResultSet(so);
if(rs.next()){
bStatus = rs.getString("before_status");
}
JBOFactory.getBizObjectManager(BUSINESS_STATUS.CLASS_NAME,tx)
.createQuery("UPDATE O SET BUSINESS_STATUS='"+bStatus+"' WHERE CONTRACT_NUMBER='"+contractNumber+"'").executeUpdate();
so = new SqlObject("DELETE FROM BUSINESS_DETAIL WHERE CONTRACT_NUMBER='"+contractNumber+"' AND BUSINESS_STATUS='"+delCode+"'");
tran.executeSQL(so);
}else{
ass = tran.getASResultSet(lci);
if(ass.next()){contractNumber = ass.getString("CONTRACT_NUMBER");}
contractNumber = ass.getString("CONTRACT_NUMBER");
so = new SqlObject("select before_status from BUSINESS_DETAIL where CONTRACT_NUMBER='"+contractNumber+"' and BUSINESS_STATUS='"+delCode+"'");
ASResultSet rs = tran.getASResultSet(so);
if(rs.next()){
bStatus = rs.getString("before_status");
}
JBOFactory.getBizObjectManager(BUSINESS_STATUS.CLASS_NAME,tx)
.createQuery("UPDATE O SET BUSINESS_STATUS='"+bStatus+"' WHERE CONTRACT_NUMBER='"+contractNumber+"'").executeUpdate();
so = new SqlObject("DELETE FROM BUSINESS_DETAIL WHERE CONTRACT_NUMBER='"+contractNumber+"' AND BUSINESS_STATUS='"+delCode+"'");
tran.executeSQL(so);
}
return "true";
}
}