apzl_leasing/src_tenwa/com/tenwa/flow/comm/status/UpdateStatusAndSaveDetail.java
2018-07-24 23:30:18 +08:00

106 lines
5.0 KiB
Java

package com.tenwa.flow.comm.status;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import jbo.app.tenwa.calc.LC_FUND_INCOME_TEMP;
import jbo.com.tenwa.lease.carbrand.BUSINESS_STATUS;
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.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.flow.baseBussion.BaseBussiness;
/**
*
* @author jianghd
*
*/
public class UpdateStatusAndSaveDetail extends BaseBussiness{
public Object run(Transaction Sqlca) throws Exception{
this.initBussinessParam(Sqlca.getTransaction());
String sFlowUnid = (String)this.getAttribute("ObjectNo");
String ProjectId = (String)this.getAttribute("ProjectId");
String ContractId = (String)this.getAttribute("ContractId");
String statusCode = (String)this.getAttribute("statusCode");
String contractNumber = (String)this.getAttribute("ContractNumber");
String userId = (String)this.getAttribute("CurUserID");
String PhaseNo = (String)this.getAttribute("PhaseNo");
if(!"0010".equals(PhaseNo)&&PhaseNo!=null){
userId = (String)this.getAttribute("CurFlowUserId");
}
String orgId = new ASUser(userId).getOrgID();
String apprlyType = (String)this.getAttribute("applyType");
if("ActualPaymentApply".equals(apprlyType)){//实际放款流程
BizObjectManager lfitBom = JBOFactory.getBizObjectManager(LC_FUND_INCOME_TEMP.CLASS_NAME,Sqlca);
List<BizObject> lfitBos=lfitBom.createQuery("FLOWUNID=:FlowUnid").setParameter("FlowUnid", sFlowUnid).getResultList(false);
for (BizObject lfitbo : lfitBos) {//对批量的合同更新进度
ProjectId = lfitbo.getAttribute("PROJECT_ID").getString();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd hh:mm:ss");
String now = sdf.format(new Date(System.currentTimeMillis()));
JBOFactory.getBizObjectManager(BUSINESS_STATUS.CLASS_NAME,Sqlca)
.createQuery("UPDATE O SET BUSINESS_STATUS='"+statusCode+"',UPDATEUSERID='"+userId+"',UPDATEORGID='"+orgId+"',UPDATETIME='"+now+"' WHERE CONTRACT_NUMBER=(SELECT LPI.CONTRACT_NUMBER FROM "+LB_PROJECT_INFO.CLASS_NAME+" LPI WHERE LPI.ID='"+ProjectId+"')").executeUpdate();
SqlObject so = new SqlObject("INSERT INTO BUSINESS_DETAIL(ID,CONTRACT_NUMBER,BUSINESS_STATUS,INPUTUSERID,INPUTORGID,INPUTTIME) SELECT SYS_GUID(),CONTRACT_NUMBER,'"+statusCode+"','"+userId+"','"+orgId+"','"+StringFunction.getTodayNow().replaceAll(":", "")+"' FROM LB_PROJECT_INFO WHERE ID='"+ProjectId+"'");
so.setDebugSql(so.getDebugSql().replaceAll("", ":"));
so.setOriginalSql(so.getOriginalSql().replaceAll("", ":"));
so.setRunSql(so.getRunSql().replaceAll("", ":"));
Sqlca.executeSQL(so);
}
}else{
if(contractNumber==null){
//FlowKey,ProjectName,ContractId
String sql = "";
if(ContractId!=null){
sql = "SELECT LPI.CONTRACT_NUMBER FROM LB_CONTRACT_INFO LPI WHERE LPI.ID='"+ContractId+"'";
}else{
sql = "SELECT LPI.CONTRACT_NUMBER FROM LB_PROJECT_INFO LPI WHERE LPI.ID='"+ProjectId+"'";
}
SqlObject lpisql = new SqlObject(sql);
ASResultSet ass = Sqlca.getASResultSet(lpisql);
if(ass.next()){
contractNumber = ass.getString("CONTRACT_NUMBER");
}
}
BizObjectManager bsBom = JBOFactory.getBizObjectManager(BUSINESS_STATUS.CLASS_NAME,Sqlca);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd hh:mm:ss");
String now = sdf.format(new Date(System.currentTimeMillis()));
BizObject bo = bsBom.createQuery("CONTRACT_NUMBER=:ContractNumber").setParameter("ContractNumber", contractNumber).getSingleResult(true);
String bStatus = "";
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",userId);
bo.setAttributeValue("INPUTORGID",orgId);
bo.setAttributeValue("INPUTTIME",now);
bsBom.saveObject(bo);
bStatus = "1";
}
bsBom.createQuery("UPDATE O SET BUSINESS_STATUS='"+statusCode+"',UPDATEUSERID='"+userId+"',UPDATEORGID='"+orgId+"',UPDATETIME='"+now+"' WHERE CONTRACT_NUMBER='"+contractNumber+"'").executeUpdate();
SqlObject so = new SqlObject("INSERT INTO BUSINESS_DETAIL(ID,CONTRACT_NUMBER,BUSINESS_STATUS,INPUTUSERID,INPUTORGID,INPUTTIME,BEFORE_STATUS) SELECT replace(uuid(),'-',''),CONTRACT_NUMBER,'"+statusCode+"','"+userId+"','"+orgId+"','"+StringFunction.getTodayNow().replaceAll(":", "")+"','"+bStatus+"' FROM LB_PROJECT_INFO WHERE ID='"+ProjectId+"'");
so.setDebugSql(so.getDebugSql().replaceAll("", ":"));
so.setOriginalSql(so.getOriginalSql().replaceAll("", ":"));
so.setRunSql(so.getRunSql().replaceAll("", ":"));
Sqlca.executeSQL(so);
}
String sMessage="true";
return sMessage;
}
}