86 lines
4.5 KiB
Java
86 lines
4.5 KiB
Java
package com.tenwa.lease.app.quartzmession;
|
|
|
|
import com.amarsoft.are.jbo.JBOException;
|
|
import com.amarsoft.are.jbo.JBOFactory;
|
|
import com.amarsoft.are.jbo.JBOTransaction;
|
|
import com.amarsoft.are.sql.Connection;
|
|
import com.amarsoft.are.util.StringFunction;
|
|
import com.amarsoft.awe.util.SqlObject;
|
|
import com.amarsoft.awe.util.Transaction;
|
|
import com.base.util.QuartzUtil;
|
|
|
|
import org.quartz.DisallowConcurrentExecution;
|
|
import org.quartz.Job;
|
|
import org.quartz.JobExecutionContext;
|
|
import org.quartz.JobExecutionException;
|
|
|
|
import java.sql.CallableStatement;
|
|
|
|
/**
|
|
* @program: apzl_leasing
|
|
* @description:
|
|
* @author: 李超杰
|
|
* @create: 2021-11-03 15:38
|
|
*/
|
|
@DisallowConcurrentExecution
|
|
public class GenerateVoucherSumJob implements Job {
|
|
|
|
@Override
|
|
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
|
|
JBOTransaction tx;
|
|
Transaction tran = null;
|
|
String startime = StringFunction.getTodayNow();
|
|
Object userId = jobExecutionContext.getTrigger().getJobDataMap().get("CurUserId");
|
|
String curUserId = userId == null? "system" : userId.toString();
|
|
try {
|
|
tx = JBOFactory.createJBOTransaction();
|
|
tran = Transaction.createTransaction(tx);
|
|
|
|
/**
|
|
* 将所有未插入中间表的凭证插入中间表
|
|
*/
|
|
String sql="INSERT INTO VOUCHER_LIST( F3, MODULE_NAME, CONTRACT_NUMBER, F5, F1, F15, MONEYS, NC_FLAG, NC_BATCH, NC_DATE, GENERATE_DATE, F48, F50, F51, F52) SELECT V8.F3, MAX(V8.MODULE_NAME) AS MODULE_NAME, MAX(V8.F47) AS CONTRACT_NUMBER, MAX(V8.F5) AS F5, MAX(V8.F1) AS F1, MAX(V8.F15) AS F15, SUM(IFNULL(V8.F7,0))+SUM(IFNULL(V8.F8,0)) AS MONEYS, (SELECT CASE IFNULL(MAX(FLAG),'2') WHEN '1' THEN '传输成功' WHEN '2' THEN '未传输' ELSE '传输失败' END FROM NCXML_DETAIL_RECORDS O WHERE O.XML_TYPE='voucher' AND O.TABLE_NUM=V8.F3) AS NC_FLAG, (SELECT MAX(BATCH) FROM NCXML_DETAIL_RECORDS O WHERE O.XML_TYPE='voucher' AND O.TABLE_NUM=V8.F3) AS NC_BATCH, (SELECT MAX(O.CREATE_TIME) FROM NCXML_DETAIL_RECORDS O WHERE O.XML_TYPE='voucher' AND O.TABLE_NUM=V8.F3) AS NC_DATE, MAX(LEFT(V8.GENERATE_DATE,19)) AS GENERATE_DATE, MAX(V8.F48) AS F48, MAX(V8.F50) AS F50, MAX(V8.F51) AS F51, MAX(V8.F52) AS F52 FROM VOUCHER_V8 V8 WHERE V8.F9 IS NULL GROUP BY V8.F3 ORDER BY MAX(LEFT(V8.GENERATE_DATE,19))";
|
|
int con = tran.executeSQL(new SqlObject(sql));
|
|
System.out.println("插入凭证列表: "+con+"条!!!");
|
|
System.out.println("插入凭证列表: "+con+"条!!!");
|
|
System.out.println("插入凭证列表: "+con+"条!!!");
|
|
/**
|
|
* 将所有已插入中间表的凭证, 变更状态
|
|
*/
|
|
sql="UPDATE VOUCHER_V8 V8,VOUCHER_LIST VL SET V8.F9='Y' WHERE V8.F9 IS NULL AND V8.F3=VL.F3";
|
|
con = tran.executeSQL(new SqlObject(sql));
|
|
System.out.println("更新凭证明细是否入中间表: "+con+"条!!!");
|
|
System.out.println("更新凭证明细是否入中间表: "+con+"条!!!");
|
|
System.out.println("更新凭证明细是否入中间表: "+con+"条!!!");
|
|
|
|
/**
|
|
* 更新传输状态
|
|
*/
|
|
sql="UPDATE VOUCHER_LIST VL,NCXML_DETAIL_RECORDS NDR SET VL.NC_FLAG=CASE IFNULL(NDR.FLAG,'2') WHEN '1' THEN '传输成功' WHEN '2' THEN '未传输' ELSE '传输失败' END, VL.NC_BATCH=NDR.BATCH,VL.NC_DATE=DATE_FORMAT(NDR.CREATE_TIME,'%Y/%m/%d') WHERE NDR.XML_TYPE='voucher' AND NDR.TABLE_NUM=VL.F3 AND VL.NC_FLAG<>'传输成功'";
|
|
con = tran.executeSQL(new SqlObject(sql));
|
|
System.out.println("更新凭证列表传输状态: "+con+"条!!!");
|
|
System.out.println("更新凭证列表传输状态: "+con+"条!!!");
|
|
System.out.println("更新凭证列表传输状态: "+con+"条!!!");
|
|
|
|
/*Connection connection = tran.getConnection(tran);
|
|
CallableStatement callableStatement = connection.prepareCall("{call PROC_CALC_VOUCHER_SUM()}");
|
|
callableStatement.execute();
|
|
callableStatement.close();
|
|
*/
|
|
tran.commit();
|
|
QuartzUtil.insertLog(startime,"com.tenwa.lease.app.quartzmession.GenerateVoucherSumJob", "success", "成功", curUserId);
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
QuartzUtil.insertLog(startime,"com.tenwa.lease.app.quartzmession.GenerateVoucherSumJob", "error", "失败", curUserId);
|
|
try {
|
|
if (tran != null) {
|
|
tran.rollback();
|
|
}
|
|
} catch (JBOException e1) {
|
|
e1.printStackTrace();
|
|
}
|
|
throw new JobExecutionException(e);
|
|
}
|
|
}
|
|
}
|