113 lines
4.3 KiB
Java
113 lines
4.3 KiB
Java
package quartz;
|
|
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
|
|
import jbo.app.tenwa.calc.VI_CONTRACT_OVERDUE;
|
|
import jbo.app.tenwa.calc.VI_OVERDUE_RENT_PLAN_SUM;
|
|
|
|
import org.quartz.Job;
|
|
import org.quartz.JobExecutionContext;
|
|
import org.quartz.JobExecutionException;
|
|
|
|
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.base.util.QuartzUtil;
|
|
import com.tenwa.comm.util.jboutil.DataOperatorUtil;
|
|
//import com.tenwa.action.channelportal.ContractSignAction;
|
|
//import com.tenwa.action.channelportal.comm.ContractTransferRightForEnd;
|
|
import com.tenwa.comm.util.jboutil.SaveBusinessStatus;
|
|
import com.tenwa.lease.app.quartzmession.JobInitUserName;
|
|
|
|
|
|
|
|
public class ContractInfoForOverdue implements Job{
|
|
private JobInitUserName jboName;
|
|
@Override
|
|
public void execute(JobExecutionContext arg0) throws JobExecutionException {
|
|
String startime = StringFunction.getTodayNow();
|
|
|
|
Object userId = arg0.getTrigger().getJobDataMap().get("CurUserId");
|
|
String curUserId = userId == null? "system" : userId.toString();
|
|
|
|
try {
|
|
JBOTransaction tx = JBOFactory.createJBOTransaction();
|
|
ownershipTransferSign(tx,arg0);
|
|
contractNormal(tx,arg0);
|
|
tx.commit();
|
|
QuartzUtil.insertLog(startime, "quartz.ContractInfoForOverdue", "success", "成功", curUserId);
|
|
} catch (Exception e) {
|
|
QuartzUtil.insertLog(startime, "quartz.ContractInfoForOverdue", "error", "失败", curUserId);
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
/**
|
|
* 将逾期的合同改为正常状态
|
|
* @param tx
|
|
* @param arg0
|
|
*/
|
|
private void contractNormal(JBOTransaction tx, JobExecutionContext arg0) {
|
|
String sql = "SELECT O.contract_number,O.over_days,lci.id FROM business_status O LEFT JOIN lb_contract_info lci ON lci.contract_number = O.contract_number WHERE O.over_days IS NOT NULL AND O.over_days != '' AND DATE_FORMAT(O.inputtime, '%Y-%m-%d') = DATE_SUB(CURDATE(), INTERVAL 1 DAY)";
|
|
String contractNumber = "";
|
|
String contractId = "";
|
|
try {
|
|
//查询合同状态表中昨天的逾期合同
|
|
List<Map<String, String>> list = DataOperatorUtil.getDataBySql(tx, sql, null);
|
|
if(list.size()>0){
|
|
//循环遍历每一条逾期的合同
|
|
for (Map<String, String> map : list) {
|
|
contractNumber = map.get("contract_number");
|
|
contractId = map.get("id");
|
|
//查询今天是否逾期,如果未逾期则插入合同正常
|
|
BizObject obj = JBOFactory.createBizObjectQuery(VI_OVERDUE_RENT_PLAN_SUM.CLASS_NAME, "contract_id=:contract_id").setParameter("contract_id", contractId).getSingleResult(false);
|
|
if(obj == null){//昨天逾期,今天未逾期,证明合同正常
|
|
|
|
//防止在当天执行多次定时任务重复插入数据
|
|
String sql1 = "SELECT business_status,contract_number,inputtime FROM business_status WHERE business_status='64' AND contract_number='"+contractNumber+"' AND LEFT(inputtime,10)=DATE_FORMAT(SYSDATE(), '%Y/%m/%d')";
|
|
List<Map<String, String>> list2 = DataOperatorUtil.getDataBySql(tx, sql1, null);
|
|
if(list2.size()==0){
|
|
|
|
SaveBusinessStatus.saveByContractId(contractId, tx, "64", jboName.getUserId(arg0, tx));
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
|
|
}
|
|
|
|
public void ownershipTransferSign(JBOTransaction tx ,JobExecutionContext arg0) throws Exception{
|
|
String conInfo1 = getContractId(tx);
|
|
//BizObjectManager businessStatusManagr = JBOFactory.getBizObjectManager(BUSINESS_STATUS.CLASS_NAME, tx);
|
|
if(!(conInfo1 == null || conInfo1.length() <= 0)){
|
|
String[] conInfos = conInfo1.split(",");
|
|
for(String conInfo:conInfos){
|
|
String contractId = conInfo.split("@")[0];
|
|
SaveBusinessStatus.saveByContractId(contractId, tx, "46", jboName.getUserId(arg0, tx));
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
//获取逾期的合同
|
|
public String getContractId(JBOTransaction tx ) throws Exception{
|
|
BizObjectManager bom=JBOFactory.getBizObjectManager(VI_CONTRACT_OVERDUE.CLASS_NAME);
|
|
List<BizObject> boList = bom.createQuery("contract_status <> '105'").getResultList(true);
|
|
String conInfos = new String();
|
|
for(BizObject bo : boList){
|
|
conInfos += bo.getAttribute("contract_id")+"@";
|
|
conInfos += bo.getAttribute("over_days")+",";
|
|
// conInfos += bo.getAttribute("BUSINESS_STATUS")+",";
|
|
}
|
|
return conInfos;
|
|
}
|
|
|
|
}
|