116 lines
6.4 KiB
Java
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";
|
|
}
|
|
|
|
}
|