diff --git a/src_tenwa/com/tenwa/lease/app/quartzmession/CreditAuditHolidayBatch.java b/src_tenwa/com/tenwa/lease/app/quartzmession/CreditAuditHolidayBatch.java
index bfe601c7c..e1ef3d8af 100644
--- a/src_tenwa/com/tenwa/lease/app/quartzmession/CreditAuditHolidayBatch.java
+++ b/src_tenwa/com/tenwa/lease/app/quartzmession/CreditAuditHolidayBatch.java
@@ -1,731 +1,769 @@
-package com.tenwa.lease.app.quartzmession;
-import com.amarsoft.are.jbo.JBOException;
-import com.amarsoft.awe.util.ASResultSet;
-import com.amarsoft.awe.util.SqlObject;
-import com.amarsoft.awe.util.Transaction;
-import com.amarsoft.dict.als.cache.CacheLoaderFactory;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.log4j.LogManager;
-import org.apache.log4j.Logger;
-import org.quartz.Job;
-import org.quartz.JobExecutionContext;
-import org.quartz.JobExecutionException;
-import java.sql.SQLException;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.UUID;
-
-/**
- * 初始化信审考核报表数据跑批
- * @author xiezhiwen
- */
-public class CreditAuditHolidayBatch implements Job{
- private static final Logger logger = LogManager.getLogger(CreditAuditHolidayBatch.class);// 引入logger日志
-
- public void execute(JobExecutionContext arg0) throws JobExecutionException {
- initDetail();
- updateDetail();
- initOrderAuditDay();
- saveOrderAuditDay();
- updateOrderAuditDay();
- }
-
- /**
- * 添加审核流程记录明细
- * @return
- */
- private void initDetail(){
- Transaction Sqlca=null;
- try{
- Sqlca = Transaction.createTransaction(CacheLoaderFactory.getDataSource());
- //初始化信审考核明细表
- String result1 = initDetail(Sqlca);
- Sqlca.commit();
- logger.info("【初始化信审考核明细表】定时任务执行成功<<<<<<<<<<<<<: "+result1);
- }catch(Exception e){
- logger.error("<<<<<<<<<<<<<<<<<<<<<<【初始化信审考核明细表】定时任务执行异常>>>>>>>>>>>>>>>>>>>>>>>");
- logger.error("<<<<<<<<<<<<<<<<<<<<<<【初始化信审考核明细表】定时任务执行异常>>>>>>>>>>>>>>>>>>>>>>>");
- logger.error("<<<<<<<<<<<<<<<<<<<<<<【初始化信审考核明细表】定时任务执行异常>>>>>>>>>>>>>>>>>>>>>>>");
- try {
- Sqlca.rollback();
- } catch (JBOException e1) {
- e1.printStackTrace();
- }
- e.printStackTrace();
- }finally {
- if(Sqlca!=null) {
- try {
- Sqlca.commit();
- Sqlca.disConnect();
- } catch (JBOException e) {
- e.printStackTrace();
- }
- }
- }
- }
-
- /**
- * 修改审核明细的创建时间
- * @return
- */
- private void updateDetail(){
- Transaction Sqlca=null;
- try{
- Sqlca = Transaction.createTransaction(CacheLoaderFactory.getDataSource());
- //初始化信审考核明细表
- String result1 = updateDetail(Sqlca);
- Sqlca.commit();
- logger.info("【修改信审考核明细表】定时任务执行异常<<<<<<<<<<<<<: "+result1);
- }catch(Exception e){
- logger.error("<<<<<<<<<<<<<<<<<<<<<<【修改信审考核明细表】定时任务执行异常>>>>>>>>>>>>>>>>>>>>>>>");
- logger.error("<<<<<<<<<<<<<<<<<<<<<<【修改信审考核明细表】定时任务执行异常>>>>>>>>>>>>>>>>>>>>>>>");
- logger.error("<<<<<<<<<<<<<<<<<<<<<<【修改信审考核明细表】定时任务执行异常>>>>>>>>>>>>>>>>>>>>>>>");
- try {
- Sqlca.rollback();
- } catch (JBOException e1) {
- e1.printStackTrace();
- }
- e.printStackTrace();
- }finally {
- if(Sqlca!=null) {
- try {
- Sqlca.commit();
- Sqlca.disConnect();
- } catch (JBOException e) {
- e.printStackTrace();
- }
- }
- }
- }
-
- /**
- * 初始化审核统计报表-根据进单日期
- * @return
- */
- private void initOrderAuditDay(){
- Transaction Sqlca=null;
- try{
- Sqlca = Transaction.createTransaction(CacheLoaderFactory.getDataSource());
- //初始化信审考核明细表
- String result1 = initOrderAuditDay(Sqlca);
- Sqlca.commit();
- logger.info("【修改信审考核明细表】定时任务执行完成<<<<<<<<<<<<<: "+result1);
- }catch(Exception e){
- logger.error("<<<<<<<<<<<<<<<<<<<<<<【修改信审考核明细表】定时任务执行异常>>>>>>>>>>>>>>>>>>>>>>>");
- logger.error("<<<<<<<<<<<<<<<<<<<<<<【修改信审考核明细表】定时任务执行异常>>>>>>>>>>>>>>>>>>>>>>>");
- logger.error("<<<<<<<<<<<<<<<<<<<<<<【修改信审考核明细表】定时任务执行异常>>>>>>>>>>>>>>>>>>>>>>>");
- try {
- Sqlca.rollback();
- } catch (JBOException e1) {
- e1.printStackTrace();
- }
- e.printStackTrace();
- }finally {
- if(Sqlca!=null) {
- try {
- Sqlca.commit();
- Sqlca.disConnect();
- } catch (JBOException e) {
- e.printStackTrace();
- }
- }
- }
- }
-
- /**
- * 初始化或者修改审核统计报表-根据审单日期
- * @return
- */
- private void saveOrderAuditDay(){
- Transaction Sqlca=null;
- try{
- Sqlca = Transaction.createTransaction(CacheLoaderFactory.getDataSource());
- //初始化信审考核明细表
- String result1 = saveOrderAuditDay(Sqlca);
- Sqlca.commit();
- logger.info("【修改信审考核明细表】定时任务执行完成<<<<<<<<<<<<<: "+result1);
- }catch(Exception e){
- logger.error("<<<<<<<<<<<<<<<<<<<<<<【修改信审考核明细表】定时任务执行异常>>>>>>>>>>>>>>>>>>>>>>>");
- logger.error("<<<<<<<<<<<<<<<<<<<<<<【修改信审考核明细表】定时任务执行异常>>>>>>>>>>>>>>>>>>>>>>>");
- logger.error("<<<<<<<<<<<<<<<<<<<<<<【修改信审考核明细表】定时任务执行异常>>>>>>>>>>>>>>>>>>>>>>>");
- try {
- Sqlca.rollback();
- } catch (JBOException e1) {
- e1.printStackTrace();
- }
- e.printStackTrace();
- }finally {
- if(Sqlca!=null) {
- try {
- Sqlca.commit();
- Sqlca.disConnect();
- } catch (JBOException e) {
- e.printStackTrace();
- }
- }
- }
- }
-
- /**
- * 初始化或者修改审核统计报表-根据审单日期
- * @return
- */
- private void updateOrderAuditDay(){
- Transaction Sqlca=null;
- try{
- Sqlca = Transaction.createTransaction(CacheLoaderFactory.getDataSource());
- //初始化信审考核明细表
- String result1 = updateOrderAuditDay(Sqlca);
- Sqlca.commit();
- logger.info("【修改信审考核明细表】定时任务执行完成<<<<<<<<<<<<<: "+result1);
- }catch(Exception e){
- logger.error("<<<<<<<<<<<<<<<<<<<<<<【修改信审考核明细表】定时任务执行异常>>>>>>>>>>>>>>>>>>>>>>>");
- logger.error("<<<<<<<<<<<<<<<<<<<<<<【修改信审考核明细表】定时任务执行异常>>>>>>>>>>>>>>>>>>>>>>>");
- logger.error("<<<<<<<<<<<<<<<<<<<<<<【修改信审考核明细表】定时任务执行异常>>>>>>>>>>>>>>>>>>>>>>>");
- try {
- Sqlca.rollback();
- } catch (JBOException e1) {
- e1.printStackTrace();
- }
- e.printStackTrace();
- }finally {
- if(Sqlca!=null) {
- try {
- Sqlca.commit();
- Sqlca.disConnect();
- } catch (JBOException e) {
- e.printStackTrace();
- }
- }
- }
- }
-
-
- /**
- * 添加审核流程记录明细
- * @return
- * @throws Exception
- */
- public String initDetail(Transaction Sqlca) throws Exception {
- // 定义全局对象
- String uuidDetail = ""; // 业务id
- String userid = ""; // 用户id
- String username = ""; // 用户姓名
- String objectno = ""; // 流程编号
- String serialno = ""; // 流程处理流水
- String auditFlowType = ""; // 流程审核类型
- String auditFlowTypeDes = ""; // 流程审核类型说明
- String createtime = ""; // 流程创建时间
- String begintime = ""; // 流程开始时间
- String endtime = ""; // 流程结束时间
- String jump_createtime = ""; // 跳过节假日之后流程创建时间
- String create_day = ""; // 跳过节假日之后流程创建日期
- String audit_day = ""; // 跳过节假日之后流程审核日期
- String jump_begintime = ""; // 跳过节假日之后流程开始时间
- String jump_endtime = ""; // 跳过节假日之后流程结束时间
- String nextAuditFlowType = ""; // 下阶段流程审核类型
- String auditResSts = ""; // 流程审核结果
- String auditResStsDes = ""; // 流程审核结果说明
- String remark = "";
- String insertSql = "";
- SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
- SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
- SimpleDateFormat dayFormat = new SimpleDateFormat("yyyy/MM/dd");
- int con=0;
- // 查询所有需要发送还款提醒的数据
- String selSql="SELECT \n" +
- " FT.userid,\n" +
- " FT.username,\n" +
- " FT.objectno,\n" +
- " FT.serialno,\n" +
- " FT.phaseno AS auditFlowType,\n" +
- " FT.phasename AS auditFlowTypeDes,\n" +
- " FT.begintime,\n" +
- " FT.endtime,\n" +
- " FT.phaseopinion1 AS nextAuditFlowType,\n" +
- " fob.phaseopinion AS auditResSts,\n" +
- " (SELECT itemname from code_library WHERE codeno='disagreeOP' AND itemno=fob.phaseopinion) AS auditResStsDes\n" +
- "FROM FLOW_TASK FT\n" +
- "LEFT JOIN FLOW_OPINION_BUSINESS FOB ON FT.SERIALNO=FOB.SERIALNO \n" +
- "WHERE FT.flowname = '业务申请流程' \n" +
- "AND FT.phaseno='0030' \n" +
- "AND (FT.USERNAME IS NOT NULL OR FT.USERNAME <>'')";
- ASResultSet rs = Sqlca.getASResultSet(new SqlObject(selSql));
- while(rs.next()) {
- // 获取接口推送所需数据
- con++;
- uuidDetail = UUID.randomUUID().toString().replace("-", "");
- userid = rs.getString("userid"); // 用户id
- username = rs.getString("username"); // 用户姓名
- objectno = rs.getString("objectno"); // 流程编号
- serialno = rs.getString("serialno"); // 流程处理流水
- auditFlowType = rs.getString("auditFlowType"); // 流程审核类型
- auditFlowTypeDes = rs.getString("auditFlowTypeDes"); // 流程审核类型说明
- createtime = rs.getString("begintime"); // 流程创建时间
- begintime = rs.getString("begintime"); // 流程开始时间
- endtime = rs.getString("endtime"); // 流程结束时间
- nextAuditFlowType = rs.getString("nextAuditFlowType"); // 下阶段流程审核类型
- auditResSts = rs.getString("auditResSts"); // 流程审核结果
- auditResStsDes = rs.getString("auditResStsDes"); // 流程审核结果说明
- if("任意退回".equals(nextAuditFlowType)){
- continue;
- }
- if(StringUtils.isNotEmpty(createtime)){//开始时间不为空
- jump_createtime = resJumpHoliday(Sqlca, rs.getString("begintime")); // 跳过节假日之后流程创建时间
- create_day = dayFormat.format(simpleDateFormat.parse(jump_createtime));
- jump_createtime = sdf.format(simpleDateFormat.parse(jump_createtime));
- jump_begintime = jump_createtime; // 跳过节假日之后流程开始时间
- createtime = sdf.format(simpleDateFormat.parse(createtime));
- begintime = createtime;
- }
- if (StringUtils.isNotEmpty(endtime)){//结束时间不为空
- jump_endtime = resJumpHoliday(Sqlca, rs.getString("endtime")); // 跳过节假日之后流程结束时间
- audit_day = dayFormat.format(simpleDateFormat.parse(jump_endtime));
- endtime = sdf.format(simpleDateFormat.parse(endtime));
- jump_endtime = sdf.format(simpleDateFormat.parse(jump_endtime));
- }
- insertSql="INSERT INTO st_credit_audit_order_detail(id,serialno,objectno,userid,username, " +
- "auditFlowType," +
- "auditFlowTypeDes," +
- "createtime," +
- "begintime," +
- "endtime," +
- "create_day," +
- "audit_day," +
- "jump_createtime," +
- "jump_begintime," +
- "jump_endtime," +
- "nextAuditFlowType," +
- "auditResSts," +
- "auditResStsDes," +
- "remark," +
- "INPUTTIME, " +
- "UPDATETIME " +
- ") " +
- "VALUES ( " +
- "'"+uuidDetail+"', " +
- "'"+serialno+"', " +
- "'"+objectno+"', " +
- "'"+userid+"', " +
- "'"+username+"', " +
- "'"+auditFlowType+"', " +
- "'"+auditFlowTypeDes+"', " +
- " '"+createtime+"', " +
- " '"+begintime+"', " +
- " '"+endtime+"', " +
- " '"+create_day+"', " +
- " '"+audit_day+"', " +
- " '"+jump_createtime+"', " +
- " '"+jump_begintime+"', " +
- " '"+jump_endtime+"', " +
- "'"+nextAuditFlowType+"', " +
- "'"+auditResSts+"', " +
- "'"+auditResStsDes+"', " +
- "'"+remark+"', " +
- "DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s'), " +
- "DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s') " +
- ")";
- Sqlca.executeSQL(new SqlObject(insertSql));
-
- }
- return String.valueOf(con);
- }
-
-
- /**
- * 查询最小创建时间更改明细记录中对应的创建时间
- * @return
- * @throws Exception
- */
- public String updateDetail(Transaction Sqlca) throws Exception {
- // 定义全局对象
- String objectno = ""; // 流程编号
- String begintime = ""; // 流程创建时间
- String createtime = ""; // 跳过节假日之后流程创建时间
- String create_day = ""; // 跳过节假日之后流程创建日期
- String updSql = "";
- SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
- SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
- SimpleDateFormat dayFormat = new SimpleDateFormat("yyyy/MM/dd");
- int con=0;
- // 查询所有需要发送还款提醒的数据
- // 查询所有需要发送还款提醒的数据
- String selSql="SELECT \n" +
- " FT.userid,\n" +
- " FT.objectno,\n" +
- " min(FT.begintime) AS begintime\n" +
- "FROM FLOW_TASK FT\n" +
- "LEFT JOIN FLOW_OPINION_BUSINESS FOB ON FT.SERIALNO=FOB.SERIALNO \n" +
- "WHERE FT.flowname = '业务申请流程' \n" +
- "AND FT.phaseno='0030' \n" +
- "AND (FT.USERNAME IS NOT NULL OR FT.USERNAME <>'') group by FT.objectno";
- ASResultSet rs = Sqlca.getASResultSet(new SqlObject(selSql));
- while(rs.next()) {
- // 获取接口推送所需数据
- con++;
- begintime = rs.getString("begintime"); // 流程编号
- objectno = rs.getString("objectno"); // 流程创建时间
- createtime = sdf.format(simpleDateFormat.parse(begintime));
- create_day = dayFormat.format(simpleDateFormat.parse(resJumpHoliday(Sqlca, begintime)));
- updSql="UPDATE st_credit_audit_order_detail SET create_day='"+create_day+"', createtime='"+createtime+"'," +
- "UPDATETIME=DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s') WHERE objectno='"+objectno+"' ";
- Sqlca.executeSQL(new SqlObject(updSql));
- objectno = "";
- begintime = "";
- createtime = "";
- create_day = "";
- updSql = "";
- }
- return String.valueOf(con);
- }
-
- /**
- * 初始化审核统计报表-保存审核日期相关订单
- * @return
- * @throws Exception
- */
- public String initOrderAuditDay(Transaction Sqlca) throws Exception {
- String insertSql="INSERT INTO st_credit_audit_order(\n" +
- " id,\n" +
- " every_day,\n" +
- " userid,\n" +
- " username,\n" +
- " auditFlowType,\n" +
- " auditFlowTypeDes,\n" +
- " count_audit,\n" +
- " count_audit_pass,\n" +
- " count_audit_refuse,\n" +
- " count_audit_refuse1,\n" +
- " count_audit_refuse2,\n" +
- " count_audit_refuse3,\n" +
- " count_audit_refuse4,\n" +
- " count_audit_refuse5,\n" +
- " count_audit_refuse6\n" +
- " )\n" +
- " SELECT \n" +
- " replace(uuid(),'-',''),\n" +
- " st2.every_day,\n" +
- " st2.userid,\n" +
- " st2.username,\n" +
- " st2.auditFlowType,\n" +
- " st2.auditFlowTypeDes,\n" +
- " st2.count_audit,\n" +
- " st3.count_audit_pass,\n" +
- " st4.count_audit_refuse,\n" +
- " st5.count_audit_refuse1,\n" +
- " st6.count_audit_refuse2,\n" +
- " st7.count_audit_refuse3,\n" +
- " st8.count_audit_refuse4,\n" +
- " st9.count_audit_refuse5,\n" +
- " st10.count_audit_refuse6\n" +
- " from\n" +
- " (SELECT COUNT(1) AS count_audit,audit_day AS every_day,userid,username,auditFlowType,auditFlowTypeDes from st_credit_audit_order_detail \n" +
- " WHERE auditResSts != 'null'AND (endtime is not null or endtime != '') GROUP BY audit_day, userid) as st2 \n" +
- " left join (SELECT COUNT(1) AS count_audit_pass,audit_day AS every_day,userid,username,auditFlowType,auditFlowTypeDes from st_credit_audit_order_detail \n" +
- " WHERE auditResSts = '0070'AND (endtime is not null or endtime != '')GROUP BY audit_day, userid) as st3 on st3.every_day = st2.every_day AND st3.userid=st2.userid\n" +
- " left join (SELECT COUNT(1) AS count_audit_refuse,audit_day AS every_day,userid,username,auditFlowType,auditFlowTypeDes from st_credit_audit_order_detail \n" +
- " WHERE auditResSts != '0070' AND auditResSts != 'null' AND (endtime is not null or endtime != '') GROUP BY audit_day, userid) as st4 on st4.every_day = st2.every_day AND st4.userid=st2.userid\n" +
- " left join (SELECT COUNT(1) AS count_audit_refuse1,audit_day AS every_day,userid,username,auditFlowType,auditFlowTypeDes from st_credit_audit_order_detail \n" +
- " WHERE auditResSts = '0010' AND (endtime is not null or endtime != '') GROUP BY audit_day, userid) as st5 on st5.every_day = st2.every_day AND st5.userid=st2.userid\n" +
- " left join (SELECT COUNT(1) AS count_audit_refuse2,audit_day AS every_day,userid,username,auditFlowType,auditFlowTypeDes from st_credit_audit_order_detail \n" +
- " WHERE auditResSts = '0020' AND (endtime is not null or endtime != '') GROUP BY audit_day, userid) as st6 on st6.every_day = st2.every_day AND st6.userid=st2.userid\n" +
- " left join (SELECT COUNT(1) AS count_audit_refuse3,audit_day AS every_day,userid,username,auditFlowType,auditFlowTypeDes from st_credit_audit_order_detail \n" +
- " WHERE auditResSts = '0030' AND (endtime is not null or endtime != '') GROUP BY audit_day, userid) as st7 on st7.every_day = st2.every_day AND st7.userid=st2.userid\n" +
- " left join (SELECT COUNT(1) AS count_audit_refuse4,audit_day AS every_day,userid,username,auditFlowType,auditFlowTypeDes from st_credit_audit_order_detail \n" +
- " WHERE auditResSts = '0040' AND (endtime is not null or endtime != '') GROUP BY audit_day, userid) as st8 on st8.every_day = st2.every_day AND st8.userid=st2.userid\n" +
- " left join (SELECT COUNT(1) AS count_audit_refuse5,audit_day AS every_day,userid,username,auditFlowType,auditFlowTypeDes from st_credit_audit_order_detail \n" +
- " WHERE auditResSts = '0050' AND (endtime is not null or endtime != '') GROUP BY audit_day, userid) as st9 on st9.every_day = st2.every_day AND st9.userid=st2.userid\n" +
- " left join (SELECT COUNT(1) AS count_audit_refuse6,audit_day AS every_day,userid,username,auditFlowType,auditFlowTypeDes from st_credit_audit_order_detail \n" +
- " WHERE auditResSts = '0060' AND (endtime is not null or endtime != '') GROUP BY audit_day, userid) as st10 on st10.every_day = st2.every_day AND st10.userid=st2.userid \n";
- Sqlca.executeSQL(new SqlObject(insertSql));
- return "-1";
- }
-
- /**
- * 根据查询进单统计数据,添加或者更新统计订单数据
- * @return
- * @throws Exception
- */
- public String saveOrderAuditDay(Transaction Sqlca) throws Exception {
- // 定义全局对象
- String id = ""; // 流程编号
- String order_count = ""; // 流程编号
- String userid = ""; // 流程编号
- String every_day = ""; // 流程编号
- String username = ""; // 流程创建时间
- String auditFlowType = ""; // 流程创建时间
- String auditFlowTypeDes = ""; // 跳过节假日之后流程创建时间
- String updSql = "";
- String selSql2 = "";
- int con=0;
- // 查询所有需要发送还款提醒的数据
- String selSql="SELECT count(1) as order_count,std1.every_day,std1.userid,std1.username,std1.auditFlowType,std1.auditFlowTypeDes \n" +
- " from (SELECT min(create_day) AS every_day,userid,username,auditFlowType,auditFlowTypeDes from st_credit_audit_order_detail GROUP BY objectno) AS std1 \n" +
- " GROUP BY std1.every_day ";
- ASResultSet rs = Sqlca.getASResultSet(new SqlObject(selSql));
- while(rs.next()) {
- id = UUID.randomUUID().toString().replace("-", "");
- // 获取接口推送所需数据
- con++;
- every_day = rs.getString("every_day"); // 流程编号
- order_count = rs.getString("order_count"); // 流程创建时间
- userid = rs.getString("userid"); // 流程创建时间
- username = rs.getString("username"); // 流程创建时间
- auditFlowType = rs.getString("auditFlowType"); // 流程创建时间
- auditFlowTypeDes = rs.getString("auditFlowTypeDes"); // 流程创建时间
-
- selSql2="SELECT count(1) as countNum FROM st_credit_audit_order WHERE every_day ='" + every_day +"'";
- ASResultSet rs2 = Sqlca.getASResultSet(new SqlObject(selSql2));
- if(rs2.next()) {
- if(rs2.getInt("countNum") > 0){
- updSql="UPDATE st_credit_audit_order SET order_count='"+order_count+"', " +
- "UPDATETIME=DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s') WHERE every_day='"+every_day+"' ";
- Sqlca.executeSQL(new SqlObject(updSql));
- }else {
- String insertSql = "INSERT INTO st_credit_audit_order(\n" +
- " id,\n" +
- " every_day,\n" +
- " userid,\n" +
- " username,\n" +
- " auditFlowType,\n" +
- " auditFlowTypeDes,\n" +
- " order_count,\n" +
- " INPUTTIME, " +
- " UPDATETIME " +
- " ) " +
- " VALUES ( " +
- " '" + id + "', " +
- " '" + every_day + "', " +
- " '" + userid + "', " +
- " '" + userid + "', " +
- " '" + username + "', " +
- " '" + auditFlowType + "', " +
- " '" + auditFlowTypeDes + "', " +
- "DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s'), " +
- "DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s') " +
- ")";
- }
- }
- id = "";
- order_count = "";
- userid = "";
- every_day = "";
- username = "";
- auditFlowType = "";
- auditFlowTypeDes = "";
- updSql = "";
- selSql2 = "";
- }
- return String.valueOf(con);
- }
-
- /**
- * 根据查询进单统计数据,修改
- * @return
- * @throws Exception
- */
- public String updateOrderAuditDay(Transaction Sqlca) throws Exception {
- // 定义全局对象
- String id = ""; // 流程编号
- String userid = ""; // 流程编号
- String every_day = ""; // 流程编号
- String begintime = ""; // 流程创建时间
- String endtime = ""; // 流程创建时间
- String audittime = ""; // 跳过节假日之后流程创建时间
- String updSql = "";
- String selSql2 = "";
- SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
- SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
- int con=0;
- // 查询所有需要发送还款提醒的数据
- String selSql="SELECT id, every_day, userid FROM st_credit_audit_order ";
- ASResultSet rs = Sqlca.getASResultSet(new SqlObject(selSql));
- while(rs.next()) {
- // 获取接口推送所需数据
- con++;
- id = rs.getString("id"); // 流程编号
- every_day = rs.getString("every_day"); // 流程编号
- userid = rs.getString("userid"); // 流程创建时间
-
- selSql2="SELECT \n" +
- " jump_begintime,\n" +
- " jump_endtime \n" +
- " FROM st_credit_audit_order_detail \n" +
- " WHERE userid = '" + userid +"'" +
- " AND audit_day ='" + every_day +"'" +
- " AND auditResSts != 'null'" +
- " AND (endtime is not null or endtime != '')" ;
- ASResultSet rs2 = Sqlca.getASResultSet(new SqlObject(selSql2));
- begintime = ""; // 流程创建时间
- endtime = "";
- while(rs2.next()) {
- String jump_begintime = rs2.getString("jump_begintime"); // 流程创建时间
- String jump_endtime = rs2.getString("jump_endtime"); // 流程创建时间
- if(StringUtils.isEmpty(begintime) || sdf.parse(begintime).getTime() > sdf.parse(jump_begintime).getTime()){
- begintime = jump_begintime;
- }
- if(StringUtils.isEmpty(endtime) || sdf.parse(jump_endtime).getTime() > sdf.parse(endtime).getTime()){
- endtime = jump_endtime;
- }
- }
- audittime = resDiffJumpHoliday(Sqlca, simpleDateFormat.format(sdf.parse(begintime)), simpleDateFormat.format(sdf.parse(endtime)));
- updSql="UPDATE st_credit_audit_order SET begintime='"+begintime+"', " +
- " endtime='"+endtime+"', " +
- " audittime='"+audittime+"', " +
- "UPDATETIME=DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s') WHERE id='"+id+"' ";
- Sqlca.executeSQL(new SqlObject(updSql));
- id = "";
- userid = "";
- every_day = "";
- begintime = "";
- endtime = "";
- audittime = "";
- updSql = "";
- selSql2 = "";
- }
- return String.valueOf(con);
- }
-
-
-
- /**
- * 0010 信用不良
- * 0020 法院执行
- * 0030 虚假信息
- * 0040 身份核实异常
- * 0050 购车目的异常
- * 0060 综合评分不足
- * 0070 同意
- * 0080 附条件通过
- */
- /**
- * 根据当前时间获得跳过节假日的工作日时间
- * @param date
- * @return
- */
- private String resJumpHoliday(Transaction Sqlca, String date) throws SQLException, ParseException {
- //查询当前时间是否在工作时间
- SimpleDateFormat dayFormat = new SimpleDateFormat("yyyy/MM/dd");
- SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
- int hour = Integer.parseInt(date.substring(11, 13));
- int minute = Integer.parseInt(date.substring(14, 16));
- if(hour < 9){//时间小于当天9点,则调整时间为上午九点
- date = date.substring(0, 11) + "09:00:00";
- }else if((hour == 17 && minute > 30) || (hour > 17)){//时间小于当天17:30点,则调整时间为第二天的上午九点
- Date time = simpleDateFormat.parse(date);
- Calendar calendar = Calendar.getInstance();
- calendar.setTime(time);
- calendar.add(Calendar.DAY_OF_MONTH, 1);
- date = simpleDateFormat.format(calendar.getTime()).substring(0, 11) + "09:00:00";
- }
- //查询当前时间是否在节假日时间
- String day = date.substring(0, 10);
- int count = 0;
- while (count < 15){
- count ++;
- String selSql="SELECT count(1) as countNum " +
- " FROM st_credit_audit_holiday st" +
- " WHERE st.c_date='" + day +"'" +
- " AND st.otype='休'" ;
- ASResultSet rs = Sqlca.getASResultSet(new SqlObject(selSql));
- int countNum = 0;
- if(rs.next()){
- countNum = rs.getInt("countNum");
- }
- if(countNum > 0){
- Date time = simpleDateFormat.parse(date);
- Calendar calendar = Calendar.getInstance();
- calendar.setTime(time);
- calendar.add(Calendar.DAY_OF_MONTH, 1);
- date = simpleDateFormat.format(calendar.getTime()).substring(0, 11) + "09:00:00";
- day = date.substring(0, 10);
- }else {
- break;
- }
- }
- return date;
- }
-
- /**
- * 根据时间段相差时间获得跳过节假日的工作日时间
- * @param begintime 开始时间
- * @param endtime 结束时间
- * @return
- */
- private String resDiffJumpHoliday(Transaction Sqlca, String begintime, String endtime) throws SQLException, ParseException {
- //获取开始时间、结束时间跳过节假日的时间
- begintime = resJumpHoliday(Sqlca, begintime);
- endtime = resJumpHoliday(Sqlca, endtime);
- //确认开始时间,到结束时间,中间隔的时间,并排除节假日时间
- //如果结束时间小于或者等于开始时间
- SimpleDateFormat dayFormat = new SimpleDateFormat("yyyy/MM/dd");
- SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
- Date beginDate = simpleDateFormat.parse(begintime);
- Date endDate = simpleDateFormat.parse(endtime);
- long diff = 0;
- if(beginDate.getTime() >= endDate.getTime()){
- return "0";
- }else if (begintime.substring(0, 10).equals(endtime.substring(0, 10))){
- diff = diffMinute(beginDate.getTime(), endDate.getTime());
- return String.valueOf(diff);
- }else {
- long diffBeginAfter = diffBeginDateAfter(begintime, beginDate);
- long diffEndDateBefore = diffEndDateBefore(endtime, endDate);
- diff = diffBeginAfter + diffEndDateBefore;
- //得到相差的天数 betweenDate
-
- beginDate = dayFormat.parse(dayFormat.format(beginDate));
- endDate = dayFormat.parse(dayFormat.format(endDate));
- long betweenDate = (endDate.getTime() - beginDate.getTime())/(60*60*24*1000);
- if (betweenDate == 1){
- return String.valueOf(diff);
- }else {//中间相隔大于一天查询数据库相隔天数中有几天是假期,
- begintime = dayFormat.format(beginDate);
- endtime = dayFormat.format(endDate);
- String selSql="SELECT COUNT(1) as countNum FROM (\n" +
- " SELECT c_date\n" +
- " FROM st_credit_audit_holiday st\n" +
- " WHERE st.c_date BETWEEN '"+begintime+"' AND '"+endtime+"'\n" +
- " AND st.otype='休'\n" +
- " GROUP BY st.c_date\n" +
- " ) AS s" ;
- ASResultSet rs = Sqlca.getASResultSet(new SqlObject(selSql));
- int countNum = 0;
- if(rs.next()){
- countNum = rs.getInt("countNum");
- }
- diff += (betweenDate - countNum - 1)*8*60;
- return String.valueOf(diff);
- }
- }
- }
-
- private long diffEndDateBefore(String endTime, Date endDate) throws ParseException {
- SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
- String endtimeBefore = endTime.substring(0, 11) + "09:00:00";
- Date endDateBefore = simpleDateFormat.parse(endtimeBefore);
- return diffMinute(endDateBefore.getTime(), endDate.getTime());
- }
-
- private long diffBeginDateAfter(String beginTime, Date beginDate) throws ParseException {
- SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
- String begintimeAfter = beginTime.substring(0, 11) + "17:30:00";
- Date beginDateAfter = simpleDateFormat.parse(begintimeAfter);
- return diffMinute(beginDate.getTime(), beginDateAfter.getTime());
- }
-
- private long diffMinute(long begin, long end){
- if(begin > end){
- return -1;
- }
- return (end - begin)/1000/60;
- }
-
-
- private boolean compareTime(String begin, String end) throws ParseException {
- SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
- return simpleDateFormat.parse(begin).getTime() > simpleDateFormat.parse(begin).getTime();
- }
-}
+package com.tenwa.lease.app.quartzmession;
+import com.amarsoft.are.jbo.JBOException;
+import com.amarsoft.awe.util.ASResultSet;
+import com.amarsoft.awe.util.SqlObject;
+import com.amarsoft.awe.util.Transaction;
+import com.amarsoft.dict.als.cache.CacheLoaderFactory;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.log4j.LogManager;
+import org.apache.log4j.Logger;
+import org.quartz.Job;
+import org.quartz.JobExecutionContext;
+import org.quartz.JobExecutionException;
+import java.sql.SQLException;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.UUID;
+
+/**
+ * 初始化信审考核报表数据跑批
+ * @author xiezhiwen
+ */
+public class CreditAuditHolidayBatch implements Job{
+ private static final Logger logger = LogManager.getLogger(CreditAuditHolidayBatch.class);// 引入logger日志
+
+ public void execute(JobExecutionContext arg0) throws JobExecutionException {
+ logger.info("【信审考核统计】【CreditAuditHolidayBatch】【开始】<<<<<<<<<<<<<: ");
+ deleteCreditAudit();
+ initDetail();
+ updateDetail();
+ initOrderAuditDay();
+ saveOrderAuditDay();
+ updateOrderAuditDay();
+ logger.info("【信审考核统计】【CreditAuditHolidayBatch】【完成】<<<<<<<<<<<<<: ");
+ }
+
+ /**
+ * 添加审核流程记录明细
+ * @return
+ */
+ private void deleteCreditAudit(){
+ Transaction Sqlca=null;
+ try{
+ Sqlca = Transaction.createTransaction(CacheLoaderFactory.getDataSource());
+ //初始化信审考核明细表
+ String delSql="truncate table st_credit_audit_order_detail";
+ String delSql2="truncate table st_credit_audit_order";
+ Sqlca.executeSQL(new SqlObject(delSql));
+ Sqlca.executeSQL(new SqlObject(delSql2));
+ Sqlca.commit();
+ logger.info("【信审考核统计】【deleteCreditAudit】数据清空执行完成<<<<<<<<<<<<<: ");
+ }catch(Exception e){
+ logger.error("<<<<<<<<<<<<<<<<<<<<<<【信审考核统计】【deleteCreditAudit】数据清空执行异常>>>>>>>>>>>>>>>>>>>>>>>");
+ logger.error("<<<<<<<<<<<<<<<<<<<<<<【信审考核统计】【deleteCreditAudit】数据清空执行异常>>>>>>>>>>>>>>>>>>>>>>>");
+ logger.error("<<<<<<<<<<<<<<<<<<<<<<【信审考核统计】【deleteCreditAudit】数据清空执行异常>>>>>>>>>>>>>>>>>>>>>>>");
+ try {
+ Sqlca.rollback();
+ } catch (JBOException e1) {
+ e1.printStackTrace();
+ }
+ e.printStackTrace();
+ }finally {
+ if(Sqlca!=null) {
+ try {
+ Sqlca.commit();
+ Sqlca.disConnect();
+ } catch (JBOException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+ }
+
+ /**
+ * 添加审核流程记录明细
+ * @return
+ */
+ private void initDetail(){
+ Transaction Sqlca=null;
+ try{
+ Sqlca = Transaction.createTransaction(CacheLoaderFactory.getDataSource());
+ //初始化信审考核明细表
+ String result1 = initDetail(Sqlca);
+ Sqlca.commit();
+ logger.info("【信审考核统计】【initDetail】初始化订单明细记录<<<<<<<<<<<<<: "+result1);
+ }catch(Exception e){
+ logger.error("<<<<<<<<<<<<<<<<<<<<<<【信审考核统计】【initDetail】初始化订单明细记录>>>>>>>>>>>>>>>>>>>>>>>");
+ logger.error("<<<<<<<<<<<<<<<<<<<<<<【信审考核统计】【initDetail】初始化订单明细记录>>>>>>>>>>>>>>>>>>>>>>>");
+ logger.error("<<<<<<<<<<<<<<<<<<<<<<【信审考核统计】【initDetail】初始化订单明细记录>>>>>>>>>>>>>>>>>>>>>>>");
+ try {
+ Sqlca.rollback();
+ } catch (JBOException e1) {
+ e1.printStackTrace();
+ }
+ e.printStackTrace();
+ }finally {
+ if(Sqlca!=null) {
+ try {
+ Sqlca.commit();
+ Sqlca.disConnect();
+ } catch (JBOException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+ }
+
+ /**
+ * 修改审核明细的创建时间
+ * @return
+ */
+ private void updateDetail(){
+ Transaction Sqlca=null;
+ try{
+ Sqlca = Transaction.createTransaction(CacheLoaderFactory.getDataSource());
+ //初始化信审考核明细表
+ String result1 = updateDetail(Sqlca);
+ Sqlca.commit();
+ logger.info("【信审考核统计】【updateDetail】修改订单明细中的创建时间执行完成<<<<<<<<<<<<<: "+result1);
+ }catch(Exception e){
+ logger.error("<<<<<<<<<<<<<<<<<<<<<<【信审考核统计】【updateDetail】修改订单明细中的创建时间执行异常>>>>>>>>>>>>>>>>>>>>>>>");
+ logger.error("<<<<<<<<<<<<<<<<<<<<<<【信审考核统计】【updateDetail】修改订单明细中的创建时间执行异常>>>>>>>>>>>>>>>>>>>>>>>");
+ logger.error("<<<<<<<<<<<<<<<<<<<<<<【信审考核统计】【updateDetail】修改订单明细中的创建时间执行异常>>>>>>>>>>>>>>>>>>>>>>>");
+ try {
+ Sqlca.rollback();
+ } catch (JBOException e1) {
+ e1.printStackTrace();
+ }
+ e.printStackTrace();
+ }finally {
+ if(Sqlca!=null) {
+ try {
+ Sqlca.commit();
+ Sqlca.disConnect();
+ } catch (JBOException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+ }
+
+ /**
+ * 初始化审核统计报表-根据进单日期
+ * @return
+ */
+ private void initOrderAuditDay(){
+ Transaction Sqlca=null;
+ try{
+ Sqlca = Transaction.createTransaction(CacheLoaderFactory.getDataSource());
+ //初始化信审考核明细表
+ String result1 = initOrderAuditDay(Sqlca);
+ Sqlca.commit();
+ logger.info("【信审考核统计】【initOrderAuditDay】初始化订单表审核数据统计执行完成<<<<<<<<<<<<<: "+result1);
+ }catch(Exception e){
+ logger.error("<<<<<<<<<<<<<<<<<<<<<<【信审考核统计】【initOrderAuditDay】初始化订单表审核数据统计执行异常>>>>>>>>>>>>>>>>>>>>>>>");
+ logger.error("<<<<<<<<<<<<<<<<<<<<<<【信审考核统计】【initOrderAuditDay】初始化订单表审核数据统计执行异常>>>>>>>>>>>>>>>>>>>>>>>");
+ logger.error("<<<<<<<<<<<<<<<<<<<<<<【信审考核统计】【initOrderAuditDay】初始化订单表审核数据统计执行异常>>>>>>>>>>>>>>>>>>>>>>>");
+ try {
+ Sqlca.rollback();
+ } catch (JBOException e1) {
+ e1.printStackTrace();
+ }
+ e.printStackTrace();
+ }finally {
+ if(Sqlca!=null) {
+ try {
+ Sqlca.commit();
+ Sqlca.disConnect();
+ } catch (JBOException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+ }
+
+ /**
+ * 初始化或者修改审核统计报表-根据审单日期
+ * @return
+ */
+ private void saveOrderAuditDay(){
+ Transaction Sqlca=null;
+ try{
+ Sqlca = Transaction.createTransaction(CacheLoaderFactory.getDataSource());
+ //初始化信审考核明细表
+ String result1 = saveOrderCreateDay(Sqlca);
+ Sqlca.commit();
+ logger.info("【信审考核统计】【saveOrderAuditDay】根据进单时间新增和修改订单统计表执行完成<<<<<<<<<<<<<: "+result1);
+ }catch(Exception e){
+ logger.error("<<<<<<<<<<<<<<<<<<<<<<【信审考核统计】【saveOrderAuditDay】根据进单时间新增和修改订单统计表执行异常>>>>>>>>>>>>>>>>>>>>>>>");
+ logger.error("<<<<<<<<<<<<<<<<<<<<<<【信审考核统计】【saveOrderAuditDay】根据进单时间新增和修改订单统计表执行异常>>>>>>>>>>>>>>>>>>>>>>>");
+ logger.error("<<<<<<<<<<<<<<<<<<<<<<【信审考核统计】【saveOrderAuditDay】根据进单时间新增和修改订单统计表执行异常>>>>>>>>>>>>>>>>>>>>>>>");
+ try {
+ Sqlca.rollback();
+ } catch (JBOException e1) {
+ e1.printStackTrace();
+ }
+ e.printStackTrace();
+ }finally {
+ if(Sqlca!=null) {
+ try {
+ Sqlca.commit();
+ Sqlca.disConnect();
+ } catch (JBOException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+ }
+
+ /**
+ * 初始化或者修改审核统计报表-根据审单日期
+ * @return
+ */
+ private void updateOrderAuditDay(){
+ Transaction Sqlca=null;
+ try{
+ Sqlca = Transaction.createTransaction(CacheLoaderFactory.getDataSource());
+ //初始化信审考核明细表
+ String result1 = updateOrderAuditDay(Sqlca);
+ Sqlca.commit();
+ logger.info("【信审考核统计】【updateOrderAuditDay】计算信审考核统计表审核时间执行完成<<<<<<<<<<<<<: "+result1);
+ }catch(Exception e){
+ logger.error("<<<<<<<<<<<<<<<<<<<<<<【信审考核统计】【updateOrderAuditDay】计算信审考核统计表审核时间执行异常>>>>>>>>>>>>>>>>>>>>>>>");
+ logger.error("<<<<<<<<<<<<<<<<<<<<<<【信审考核统计】【updateOrderAuditDay】计算信审考核统计表审核时间执行异常>>>>>>>>>>>>>>>>>>>>>>>");
+ logger.error("<<<<<<<<<<<<<<<<<<<<<<【信审考核统计】【updateOrderAuditDay】计算信审考核统计表审核时间执行异常>>>>>>>>>>>>>>>>>>>>>>>");
+ try {
+ Sqlca.rollback();
+ } catch (JBOException e1) {
+ e1.printStackTrace();
+ }
+ e.printStackTrace();
+ }finally {
+ if(Sqlca!=null) {
+ try {
+ Sqlca.commit();
+ Sqlca.disConnect();
+ } catch (JBOException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+ }
+
+
+ /**
+ * 添加审核流程记录明细
+ * @return
+ * @throws Exception
+ */
+ public String initDetail(Transaction Sqlca) throws Exception {
+ // 定义全局对象
+ String uuidDetail = ""; // 业务id
+ String userid = ""; // 用户id
+ String username = ""; // 用户姓名
+ String objectno = ""; // 流程编号
+ String serialno = ""; // 流程处理流水
+ String auditFlowType = ""; // 流程审核类型
+ String auditFlowTypeDes = ""; // 流程审核类型说明
+ String createtime = ""; // 流程创建时间
+ String begintime = ""; // 流程开始时间
+ String endtime = ""; // 流程结束时间
+ String jump_createtime = ""; // 跳过节假日之后流程创建时间
+ String create_day = ""; // 跳过节假日之后流程创建日期
+ String audit_day = ""; // 跳过节假日之后流程审核日期
+ String jump_begintime = ""; // 跳过节假日之后流程开始时间
+ String jump_endtime = ""; // 跳过节假日之后流程结束时间
+ String nextAuditFlowType = ""; // 下阶段流程审核类型
+ String auditResSts = ""; // 流程审核结果
+ String auditResStsDes = ""; // 流程审核结果说明
+ String remark = "";
+ String insertSql = "";
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
+ SimpleDateFormat dayFormat = new SimpleDateFormat("yyyy/MM/dd");
+ int con=0;
+ // 查询所有需要发送还款提醒的数据
+ String selSql="SELECT \n" +
+ " FT.userid,\n" +
+ " FT.username,\n" +
+ " FT.objectno,\n" +
+ " FT.serialno,\n" +
+ " FT.phaseno AS auditFlowType,\n" +
+ " FT.phasename AS auditFlowTypeDes,\n" +
+ " FT.begintime,\n" +
+ " FT.endtime,\n" +
+ " FT.phaseopinion1 AS nextAuditFlowType,\n" +
+ " fob.phaseopinion AS auditResSts,\n" +
+ " (SELECT itemname from code_library WHERE codeno='disagreeOP' AND itemno=fob.phaseopinion) AS auditResStsDes\n" +
+ "FROM FLOW_TASK FT\n" +
+ "LEFT JOIN FLOW_OPINION_BUSINESS FOB ON FT.SERIALNO=FOB.SERIALNO \n" +
+ "WHERE FT.flowname = '业务申请流程' \n" +
+ "AND FT.phaseno='0030' \n" +
+ "AND (FT.USERNAME IS NOT NULL OR FT.USERNAME <>'')";
+ ASResultSet rs = Sqlca.getASResultSet(new SqlObject(selSql));
+ while(rs.next()) {
+ // 获取接口推送所需数据
+ con++;
+ uuidDetail = UUID.randomUUID().toString().replace("-", "");
+ userid = rs.getString("userid"); // 用户id
+ username = rs.getString("username"); // 用户姓名
+ objectno = rs.getString("objectno"); // 流程编号
+ serialno = rs.getString("serialno"); // 流程处理流水
+ auditFlowType = rs.getString("auditFlowType"); // 流程审核类型
+ auditFlowTypeDes = rs.getString("auditFlowTypeDes"); // 流程审核类型说明
+ createtime = rs.getString("begintime"); // 流程创建时间
+ begintime = rs.getString("begintime"); // 流程开始时间
+ endtime = rs.getString("endtime"); // 流程结束时间
+ nextAuditFlowType = rs.getString("nextAuditFlowType"); // 下阶段流程审核类型
+ auditResSts = rs.getString("auditResSts"); // 流程审核结果
+ auditResStsDes = rs.getString("auditResStsDes"); // 流程审核结果说明
+ if("任意退回".equals(nextAuditFlowType)){
+ continue;
+ }
+ if(StringUtils.isNotEmpty(createtime)){//开始时间不为空
+ jump_createtime = resJumpHoliday(Sqlca, rs.getString("begintime")); // 跳过节假日之后流程创建时间
+ create_day = dayFormat.format(simpleDateFormat.parse(jump_createtime));
+ jump_createtime = sdf.format(simpleDateFormat.parse(jump_createtime));
+ jump_begintime = jump_createtime; // 跳过节假日之后流程开始时间
+ createtime = sdf.format(simpleDateFormat.parse(createtime));
+ begintime = createtime;
+ }
+ if (StringUtils.isNotEmpty(endtime)){//结束时间不为空
+ jump_endtime = resJumpHoliday(Sqlca, rs.getString("endtime")); // 跳过节假日之后流程结束时间
+ audit_day = dayFormat.format(simpleDateFormat.parse(jump_endtime));
+ endtime = sdf.format(simpleDateFormat.parse(endtime));
+ jump_endtime = sdf.format(simpleDateFormat.parse(jump_endtime));
+ }
+ insertSql="INSERT INTO st_credit_audit_order_detail(id,serialno,objectno,userid,username, " +
+ "auditFlowType," +
+ "auditFlowTypeDes," +
+ "createtime," +
+ "begintime," +
+ "endtime," +
+ "create_day," +
+ "audit_day," +
+ "jump_createtime," +
+ "jump_begintime," +
+ "jump_endtime," +
+ "nextAuditFlowType," +
+ "auditResSts," +
+ "auditResStsDes," +
+ "remark," +
+ "INPUTTIME, " +
+ "UPDATETIME " +
+ ") " +
+ "VALUES ( " +
+ "'"+uuidDetail+"', " +
+ "'"+serialno+"', " +
+ "'"+objectno+"', " +
+ "'"+userid+"', " +
+ "'"+username+"', " +
+ "'"+auditFlowType+"', " +
+ "'"+auditFlowTypeDes+"', " +
+ " '"+createtime+"', " +
+ " '"+begintime+"', " +
+ " '"+endtime+"', " +
+ " '"+create_day+"', " +
+ " '"+audit_day+"', " +
+ " '"+jump_createtime+"', " +
+ " '"+jump_begintime+"', " +
+ " '"+jump_endtime+"', " +
+ "'"+nextAuditFlowType+"', " +
+ "'"+auditResSts+"', " +
+ "'"+auditResStsDes+"', " +
+ "'"+remark+"', " +
+ "DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s'), " +
+ "DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s') " +
+ ")";
+ Sqlca.executeSQL(new SqlObject(insertSql));
+
+ }
+ return String.valueOf(con);
+ }
+
+
+ /**
+ * 查询最小创建时间更改明细记录中对应的创建时间
+ * @return
+ * @throws Exception
+ */
+ public String updateDetail(Transaction Sqlca) throws Exception {
+ // 定义全局对象
+ String objectno = ""; // 流程编号
+ String begintime = ""; // 流程创建时间
+ String createtime = ""; // 跳过节假日之后流程创建时间
+ String create_day = ""; // 跳过节假日之后流程创建日期
+ String updSql = "";
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
+ SimpleDateFormat dayFormat = new SimpleDateFormat("yyyy/MM/dd");
+ int con=0;
+ // 查询所有需要发送还款提醒的数据
+ // 查询所有需要发送还款提醒的数据
+ String selSql="SELECT \n" +
+ " FT.userid,\n" +
+ " FT.objectno,\n" +
+ " min(FT.begintime) AS begintime\n" +
+ "FROM FLOW_TASK FT\n" +
+ "LEFT JOIN FLOW_OPINION_BUSINESS FOB ON FT.SERIALNO=FOB.SERIALNO \n" +
+ "WHERE FT.flowname = '业务申请流程' \n" +
+ "AND FT.phaseno='0030' \n" +
+ "AND (FT.USERNAME IS NOT NULL OR FT.USERNAME <>'') group by FT.objectno";
+ ASResultSet rs = Sqlca.getASResultSet(new SqlObject(selSql));
+ while(rs.next()) {
+ // 获取接口推送所需数据
+ con++;
+ begintime = rs.getString("begintime"); // 流程编号
+ objectno = rs.getString("objectno"); // 流程创建时间
+ createtime = sdf.format(simpleDateFormat.parse(begintime));
+ create_day = dayFormat.format(simpleDateFormat.parse(resJumpHoliday(Sqlca, begintime)));
+ updSql="UPDATE st_credit_audit_order_detail SET create_day='"+create_day+"', createtime='"+createtime+"'," +
+ "UPDATETIME=DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s') WHERE objectno='"+objectno+"' ";
+ Sqlca.executeSQL(new SqlObject(updSql));
+ objectno = "";
+ begintime = "";
+ createtime = "";
+ create_day = "";
+ updSql = "";
+ }
+ return String.valueOf(con);
+ }
+
+ /**
+ * 初始化审核统计报表-保存审核日期相关订单
+ * @return
+ * @throws Exception
+ */
+ public String initOrderAuditDay(Transaction Sqlca) throws Exception {
+ String insertSql="INSERT INTO st_credit_audit_order(\n" +
+ " id,\n" +
+ " every_day,\n" +
+ " userid,\n" +
+ " username,\n" +
+ " auditFlowType,\n" +
+ " auditFlowTypeDes,\n" +
+ " count_audit,\n" +
+ " count_audit_pass,\n" +
+ " count_audit_refuse,\n" +
+ " count_audit_refuse1,\n" +
+ " count_audit_refuse2,\n" +
+ " count_audit_refuse3,\n" +
+ " count_audit_refuse4,\n" +
+ " count_audit_refuse5,\n" +
+ " count_audit_refuse6\n" +
+ " )\n" +
+ " SELECT \n" +
+ " replace(uuid(),'-',''),\n" +
+ " st2.every_day,\n" +
+ " st2.userid,\n" +
+ " st2.username,\n" +
+ " st2.auditFlowType,\n" +
+ " st2.auditFlowTypeDes,\n" +
+ " st2.count_audit,\n" +
+ " st3.count_audit_pass,\n" +
+ " st4.count_audit_refuse,\n" +
+ " st5.count_audit_refuse1,\n" +
+ " st6.count_audit_refuse2,\n" +
+ " st7.count_audit_refuse3,\n" +
+ " st8.count_audit_refuse4,\n" +
+ " st9.count_audit_refuse5,\n" +
+ " st10.count_audit_refuse6\n" +
+ " from\n" +
+ " (SELECT COUNT(1) AS count_audit,audit_day AS every_day,userid,username,auditFlowType,auditFlowTypeDes from st_credit_audit_order_detail \n" +
+ " WHERE auditResSts != 'null'AND (endtime is not null or endtime != '') GROUP BY audit_day, userid) as st2 \n" +
+ " left join (SELECT COUNT(1) AS count_audit_pass,audit_day AS every_day,userid,username,auditFlowType,auditFlowTypeDes from st_credit_audit_order_detail \n" +
+ " WHERE auditResSts = '0070'AND (endtime is not null or endtime != '')GROUP BY audit_day, userid) as st3 on st3.every_day = st2.every_day AND st3.userid=st2.userid\n" +
+ " left join (SELECT COUNT(1) AS count_audit_refuse,audit_day AS every_day,userid,username,auditFlowType,auditFlowTypeDes from st_credit_audit_order_detail \n" +
+ " WHERE auditResSts != '0070' AND auditResSts != 'null' AND (endtime is not null or endtime != '') GROUP BY audit_day, userid) as st4 on st4.every_day = st2.every_day AND st4.userid=st2.userid\n" +
+ " left join (SELECT COUNT(1) AS count_audit_refuse1,audit_day AS every_day,userid,username,auditFlowType,auditFlowTypeDes from st_credit_audit_order_detail \n" +
+ " WHERE auditResSts = '0010' AND (endtime is not null or endtime != '') GROUP BY audit_day, userid) as st5 on st5.every_day = st2.every_day AND st5.userid=st2.userid\n" +
+ " left join (SELECT COUNT(1) AS count_audit_refuse2,audit_day AS every_day,userid,username,auditFlowType,auditFlowTypeDes from st_credit_audit_order_detail \n" +
+ " WHERE auditResSts = '0020' AND (endtime is not null or endtime != '') GROUP BY audit_day, userid) as st6 on st6.every_day = st2.every_day AND st6.userid=st2.userid\n" +
+ " left join (SELECT COUNT(1) AS count_audit_refuse3,audit_day AS every_day,userid,username,auditFlowType,auditFlowTypeDes from st_credit_audit_order_detail \n" +
+ " WHERE auditResSts = '0030' AND (endtime is not null or endtime != '') GROUP BY audit_day, userid) as st7 on st7.every_day = st2.every_day AND st7.userid=st2.userid\n" +
+ " left join (SELECT COUNT(1) AS count_audit_refuse4,audit_day AS every_day,userid,username,auditFlowType,auditFlowTypeDes from st_credit_audit_order_detail \n" +
+ " WHERE auditResSts = '0040' AND (endtime is not null or endtime != '') GROUP BY audit_day, userid) as st8 on st8.every_day = st2.every_day AND st8.userid=st2.userid\n" +
+ " left join (SELECT COUNT(1) AS count_audit_refuse5,audit_day AS every_day,userid,username,auditFlowType,auditFlowTypeDes from st_credit_audit_order_detail \n" +
+ " WHERE auditResSts = '0050' AND (endtime is not null or endtime != '') GROUP BY audit_day, userid) as st9 on st9.every_day = st2.every_day AND st9.userid=st2.userid\n" +
+ " left join (SELECT COUNT(1) AS count_audit_refuse6,audit_day AS every_day,userid,username,auditFlowType,auditFlowTypeDes from st_credit_audit_order_detail \n" +
+ " WHERE auditResSts = '0060' AND (endtime is not null or endtime != '') GROUP BY audit_day, userid) as st10 on st10.every_day = st2.every_day AND st10.userid=st2.userid \n";
+ Sqlca.executeSQL(new SqlObject(insertSql));
+ return "-1";
+ }
+
+ /**
+ * 根据查询进单统计数据,添加或者更新统计订单数据
+ * @return
+ * @throws Exception
+ */
+ public String saveOrderCreateDay(Transaction Sqlca) throws Exception {
+ // 定义全局对象
+ String id = ""; // 流程编号
+ String order_count = ""; // 流程编号
+ String userid = ""; // 流程编号
+ String every_day = ""; // 流程编号
+ String username = ""; // 流程创建时间
+ String auditFlowType = ""; // 流程创建时间
+ String auditFlowTypeDes = ""; // 跳过节假日之后流程创建时间
+ String updSql = "";
+ String selSql2 = "";
+ int con=0;
+ // 查询所有需要发送还款提醒的数据
+ String selSql="SELECT count(1) as order_count,std1.every_day,std1.userid,std1.username,std1.auditFlowType,std1.auditFlowTypeDes \n" +
+ " from (SELECT min(create_day) AS every_day,userid,username,auditFlowType,auditFlowTypeDes from st_credit_audit_order_detail GROUP BY objectno) AS std1 \n" +
+ " GROUP BY std1.every_day ";
+ ASResultSet rs = Sqlca.getASResultSet(new SqlObject(selSql));
+ while(rs.next()) {
+ id = UUID.randomUUID().toString().replace("-", "");
+ // 获取接口推送所需数据
+ con++;
+ every_day = rs.getString("every_day"); // 流程编号
+ order_count = rs.getString("order_count"); // 流程创建时间
+ userid = rs.getString("userid"); // 流程创建时间
+ username = rs.getString("username"); // 流程创建时间
+ auditFlowType = rs.getString("auditFlowType"); // 流程创建时间
+ auditFlowTypeDes = rs.getString("auditFlowTypeDes"); // 流程创建时间
+
+ selSql2="SELECT count(1) as countNum FROM st_credit_audit_order WHERE every_day ='" + every_day +"'";
+ ASResultSet rs2 = Sqlca.getASResultSet(new SqlObject(selSql2));
+ if(rs2.next()) {
+ if(rs2.getInt("countNum") > 0){
+ updSql="UPDATE st_credit_audit_order SET order_count='"+order_count+"', " +
+ "UPDATETIME=DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s') WHERE every_day='"+every_day+"' ";
+ Sqlca.executeSQL(new SqlObject(updSql));
+ }else {
+ String insertSql = "INSERT INTO st_credit_audit_order(\n" +
+ " id,\n" +
+ " every_day,\n" +
+ " userid,\n" +
+ " username,\n" +
+ " auditFlowType,\n" +
+ " auditFlowTypeDes,\n" +
+ " order_count,\n" +
+ " INPUTTIME, " +
+ " UPDATETIME " +
+ " ) " +
+ " VALUES ( " +
+ " '" + id + "', " +
+ " '" + every_day + "', " +
+ " '" + userid + "', " +
+ " '" + userid + "', " +
+ " '" + username + "', " +
+ " '" + auditFlowType + "', " +
+ " '" + auditFlowTypeDes + "', " +
+ "DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s'), " +
+ "DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s') " +
+ ")";
+ }
+ }
+ id = "";
+ order_count = "";
+ userid = "";
+ every_day = "";
+ username = "";
+ auditFlowType = "";
+ auditFlowTypeDes = "";
+ updSql = "";
+ selSql2 = "";
+ }
+ return String.valueOf(con);
+ }
+
+ /**
+ * 更改主表信审考核时间
+ * @return
+ * @throws Exception
+ */
+ public String updateOrderAuditDay(Transaction Sqlca) throws Exception {
+ // 定义全局对象
+ String id = ""; // 流程编号
+ String userid = ""; // 流程编号
+ String every_day = ""; // 流程编号
+ String begintime = ""; // 流程创建时间
+ String endtime = ""; // 流程创建时间
+ String audittime = "0"; // 跳过节假日之后流程创建时间
+ String updSql = "";
+ String selSql2 = "";
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
+ int con=0;
+ // 查询所有需要发送还款提醒的数据
+ String selSql="SELECT id, every_day, userid FROM st_credit_audit_order ";
+ ASResultSet rs = Sqlca.getASResultSet(new SqlObject(selSql));
+ while(rs.next()) {
+ // 获取接口推送所需数据
+ con++;
+ id = rs.getString("id"); // 流程编号
+ every_day = rs.getString("every_day"); // 流程编号
+ userid = rs.getString("userid"); // 流程创建时间
+
+ selSql2="SELECT \n" +
+ " jump_begintime,\n" +
+ " jump_endtime \n" +
+ " FROM st_credit_audit_order_detail \n" +
+ " WHERE userid = '" + userid +"'" +
+ " AND audit_day ='" + every_day +"'" +
+ " AND auditResSts != 'null'" +
+ " AND (endtime is not null or endtime != '')" ;
+ ASResultSet rs2 = Sqlca.getASResultSet(new SqlObject(selSql2));
+ begintime = ""; // 流程创建时间
+ endtime = "";
+ while(rs2.next()) {
+ String jump_begintime = rs2.getString("jump_begintime"); // 流程创建时间
+ String jump_endtime = rs2.getString("jump_endtime"); // 流程创建时间
+ if(StringUtils.isEmpty(begintime) || sdf.parse(begintime).getTime() > sdf.parse(jump_begintime).getTime()){
+ begintime = jump_begintime;
+ }
+ if(StringUtils.isEmpty(endtime) || sdf.parse(jump_endtime).getTime() > sdf.parse(endtime).getTime()){
+ endtime = jump_endtime;
+ }
+ //信审考核时间累加
+ String tmpStr = resDiffJumpHoliday(Sqlca, simpleDateFormat.format(sdf.parse(jump_begintime)), simpleDateFormat.format(sdf.parse(jump_endtime)));
+ int tmpTime = Integer.parseInt(audittime) + Integer.parseInt(tmpStr);
+ audittime = String.valueOf(tmpTime);
+ }
+
+ updSql="UPDATE st_credit_audit_order SET begintime='"+begintime+"', " +
+ " endtime='"+endtime+"', " +
+ " audittime='"+audittime+"', " +
+ "UPDATETIME=DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s') WHERE id='"+id+"' ";
+ Sqlca.executeSQL(new SqlObject(updSql));
+ id = "";
+ userid = "";
+ every_day = "";
+ begintime = "";
+ endtime = "";
+ audittime = "0";
+ updSql = "";
+ selSql2 = "";
+ }
+ return String.valueOf(con);
+ }
+
+
+
+ /**
+ * 0010 信用不良
+ * 0020 法院执行
+ * 0030 虚假信息
+ * 0040 身份核实异常
+ * 0050 购车目的异常
+ * 0060 综合评分不足
+ * 0070 同意
+ * 0080 附条件通过
+ */
+ /**
+ * 根据当前时间获得跳过节假日的工作日时间
+ * @param date
+ * @return
+ */
+ private String resJumpHoliday(Transaction Sqlca, String date) throws SQLException, ParseException {
+ //查询当前时间是否在工作时间
+ SimpleDateFormat dayFormat = new SimpleDateFormat("yyyy/MM/dd");
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
+ int hour = Integer.parseInt(date.substring(11, 13));
+ int minute = Integer.parseInt(date.substring(14, 16));
+ if(hour < 9){//时间小于当天9点,则调整时间为上午九点
+ date = date.substring(0, 11) + "09:00:00";
+ }else if((hour == 17 && minute > 30) || (hour > 17)){//时间小于当天17:30点,则调整时间为第二天的上午九点
+ Date time = simpleDateFormat.parse(date);
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(time);
+ calendar.add(Calendar.DAY_OF_MONTH, 1);
+ date = simpleDateFormat.format(calendar.getTime()).substring(0, 11) + "09:00:00";
+ }
+ //查询当前时间是否在节假日时间
+ String day = date.substring(0, 10);
+ int count = 0;
+ while (count < 15){
+ count ++;
+ String selSql="SELECT count(1) as countNum " +
+ " FROM st_credit_audit_holiday st" +
+ " WHERE st.c_date='" + day +"'" +
+ " AND st.otype='休'" ;
+ ASResultSet rs = Sqlca.getASResultSet(new SqlObject(selSql));
+ int countNum = 0;
+ if(rs.next()){
+ countNum = rs.getInt("countNum");
+ }
+ if(countNum > 0){
+ Date time = simpleDateFormat.parse(date);
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(time);
+ calendar.add(Calendar.DAY_OF_MONTH, 1);
+ date = simpleDateFormat.format(calendar.getTime()).substring(0, 11) + "09:00:00";
+ day = date.substring(0, 10);
+ }else {
+ break;
+ }
+ }
+ return date;
+ }
+
+ /**
+ * 根据时间段相差时间获得跳过节假日的工作日时间
+ * @param begintime 开始时间
+ * @param endtime 结束时间
+ * @return
+ */
+ private String resDiffJumpHoliday(Transaction Sqlca, String begintime, String endtime) throws SQLException, ParseException {
+ //获取开始时间、结束时间跳过节假日的时间
+ begintime = resJumpHoliday(Sqlca, begintime);
+ endtime = resJumpHoliday(Sqlca, endtime);
+ //确认开始时间,到结束时间,中间隔的时间,并排除节假日时间
+ //如果结束时间小于或者等于开始时间
+ SimpleDateFormat dayFormat = new SimpleDateFormat("yyyy/MM/dd");
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
+ Date beginDate = simpleDateFormat.parse(begintime);
+ Date endDate = simpleDateFormat.parse(endtime);
+ long diff = 0;
+ if(beginDate.getTime() >= endDate.getTime()){
+ return "0";
+ }else if (begintime.substring(0, 10).equals(endtime.substring(0, 10))){
+ diff = diffMinute(beginDate.getTime(), endDate.getTime());
+ return String.valueOf(diff);
+ }else {
+ long diffBeginAfter = diffBeginDateAfter(begintime, beginDate);
+ long diffEndDateBefore = diffEndDateBefore(endtime, endDate);
+ diff = diffBeginAfter + diffEndDateBefore;
+ //得到相差的天数 betweenDate
+
+ beginDate = dayFormat.parse(dayFormat.format(beginDate));
+ endDate = dayFormat.parse(dayFormat.format(endDate));
+ long betweenDate = (endDate.getTime() - beginDate.getTime())/(60*60*24*1000);
+ if (betweenDate == 1){
+ return String.valueOf(diff);
+ }else {//中间相隔大于一天查询数据库相隔天数中有几天是假期,
+ begintime = dayFormat.format(beginDate);
+ endtime = dayFormat.format(endDate);
+ String selSql="SELECT COUNT(1) as countNum FROM (\n" +
+ " SELECT c_date\n" +
+ " FROM st_credit_audit_holiday st\n" +
+ " WHERE st.c_date BETWEEN '"+begintime+"' AND '"+endtime+"'\n" +
+ " AND st.otype='休'\n" +
+ " GROUP BY st.c_date\n" +
+ " ) AS s" ;
+ ASResultSet rs = Sqlca.getASResultSet(new SqlObject(selSql));
+ int countNum = 0;
+ if(rs.next()){
+ countNum = rs.getInt("countNum");
+ }
+ diff += (betweenDate - countNum - 1)*8*60;
+ return String.valueOf(diff);
+ }
+ }
+ }
+
+ private long diffEndDateBefore(String endTime, Date endDate) throws ParseException {
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
+ String endtimeBefore = endTime.substring(0, 11) + "09:00:00";
+ Date endDateBefore = simpleDateFormat.parse(endtimeBefore);
+ return diffMinute(endDateBefore.getTime(), endDate.getTime());
+ }
+
+ private long diffBeginDateAfter(String beginTime, Date beginDate) throws ParseException {
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
+ String begintimeAfter = beginTime.substring(0, 11) + "17:30:00";
+ Date beginDateAfter = simpleDateFormat.parse(begintimeAfter);
+ return diffMinute(beginDate.getTime(), beginDateAfter.getTime());
+ }
+
+ private long diffMinute(long begin, long end){
+ if(begin > end){
+ return -1;
+ }
+ return (end - begin)/1000/60;
+ }
+}
diff --git a/鎶ヨ〃/寰俊鍏紬鍙锋姤琛/鐢ㄦ埛缁戝畾淇℃伅琛.xml b/鎶ヨ〃/寰俊鍏紬鍙锋姤琛/鐢ㄦ埛缁戝畾淇℃伅琛.xml
index da71268d4..43e02ed8f 100644
--- a/鎶ヨ〃/寰俊鍏紬鍙锋姤琛/鐢ㄦ埛缁戝畾淇℃伅琛.xml
+++ b/鎶ヨ〃/寰俊鍏紬鍙锋姤琛/鐢ㄦ埛缁戝畾淇℃伅琛.xml
@@ -16,37 +16,43 @@
- 2c9c81b66e5d8b8b016eacb3adb80196
+ 2c9c81b969188a33016f371d6341014c
鐢ㄦ埛缁戝畾淇℃伅琛
Wechat_user_buinding_report
- true
0
REPORT
- 2c9c81b66e5d8b8b016eacb10d170195
+ 2c9c81b969188a33016f371cc4f2012a
- 2c9c81b66f1cf0bd016f37f08b2f001d
+ 2c9c81b969188a33016f473dd1b301d5
- 2c9c81b66e5d8b8b016eacb4b11f0197
+ 2c9c81b969188a33016f371d633b014b
寰俊鐢ㄦ埛缁戝畾淇℃伅琛
Wechat_user_buinding_report
2c9023815726a036015726a496b00001
COMPLEXSQL
SELECT
+WUI.openid,
CI.CUSTOMERNAME,
WUI.MOBILE_,
WUI.CERTID_,
WUI.WECHAT_NAME,
- LCI.CONTRACT_NUMBER,
+ LCI.CONTRACT_NUMBER,
+ CONCAT('姣忔湀',CONVERT(DAY(LRP.PLAN_DATE), CHAR),'鏃') AS PLAN_DATE,
+ IFNULL(LRP.RENT, 0.00) AS RENT,
LCS.STATUS_NAME,
LPI.PRODUCT_NAME,
DI.DISTRIBUTOR_NAME,
LPI.AFFILIATEDNAME,
- LEC.FRAME_NUMBER
+ LEC.FRAME_NUMBER,
+case when WUI.attention_status='N' then '鍚'
+ else '鏄'
+ end as attention_status,
+ WUI.binding_time
FROM
WECHAT_USER_INFO WUI
LEFT JOIN
@@ -57,6 +63,7 @@ LEFT JOIN
LB_PROJECT_INFO LPI ON LPI.ID=LUL.PROJECT_ID
LEFT JOIN
LB_CONTRACT_INFO LCI ON LCI.ID=LUL.CONTRACT_ID
+LEFT JOIN (SELECT CONTRACT_ID,SUM(RENT) AS RENT,MAX(PLAN_DATE) AS PLAN_DATE FROM LC_RENT_PLAN WHERE PLAN_LIST = 1 GROUP BY CONTRACT_ID) LRP ON LRP.CONTRACT_ID = LCI.ID
LEFT JOIN
LB_EQUIPMENT_CAR LEC ON LEC.CONTRACT_ID=LCI.ID
LEFT JOIN
@@ -67,109 +74,13 @@ WHERE WUI.BINDING_STATUS='Y' AND (LCI.CONTRACT_STATUS BETWEEN 31 AND 100 OR LCI
- 2c9c81b66f1cf0bd016f37f08b320027
+ 2c9c81b969188a33016f473dd1b401d6
CUSTOMERNAME
STRING
瀹㈡埛鍚嶇О
CUSTOMERNAME
100
- 10
- true
-
- false
- false
- false
- false
-
-
-
-
-
- 2c9c81b66f1cf0bd016f37f08b310021
- MOBILE_
- STRING
-
- 鑱旂郴鐢佃瘽
- MOBILE_
- 100
- 11
- true
-
- false
- false
- false
- false
-
-
-
-
-
- 2c9c81b66f1cf0bd016f37f08b320025
- CERTID_
- STRING
-
- 韬唤璇佸彿
- CERTID_
- 150
- 12
- true
-
- false
- false
- false
- false
-
-
-
-
-
- 2c9c81b66f1cf0bd016f37f08b310023
- CONTRACT_NUMBER
- STRING
-
- 鍚堝悓缂栧彿
- CONTRACT_NUMBER
- 150
- 13
- true
-
- false
- false
- false
- false
-
-
-
-
-
- 2c9c81b66f1cf0bd016f37f08b310020
- STATUS_NAME
- STRING
-
- 鍚堝悓鐘舵
- STATUS_NAME
- 100
- 14
- true
-
- false
- false
- false
- false
- CENTER
-
-
-
-
-
- 2c9c81b66f1cf0bd016f37f08b320026
- PRODUCT_NAME
- STRING
-
- 浜у搧鍚嶇О
- PRODUCT_NAME
- 200
15
true
@@ -182,13 +93,13 @@ WHERE WUI.BINDING_STATUS='Y' AND (LCI.CONTRACT_STATUS BETWEEN 31 AND 100 OR LCI
- 2c9c81b66f1cf0bd016f37f08b31001f
- DISTRIBUTOR_NAME
+ 2c9c81b6710c46490171148b10680002
+ PLAN_DATE
STRING
- 娓犻亾鍟嗗悕绉
- DISTRIBUTOR_NAME
- 200
+ 鏈堣繕娆炬棩
+ PLAN_DATE
+ 100
16
true
@@ -201,13 +112,13 @@ WHERE WUI.BINDING_STATUS='Y' AND (LCI.CONTRACT_STATUS BETWEEN 31 AND 100 OR LCI
- 2c9c81b66f1cf0bd016f37f08b31001e
- AFFILIATEDNAME
- STRING
+ 2c9c81b6710c46490171148b10680003
+ RENT
+ NUMBER
- 鎸傞潬鍏徃
- AFFILIATEDNAME
- 200
+ 鏈堢閲(鍏)
+ RENT
+ 100
17
true
@@ -220,13 +131,13 @@ WHERE WUI.BINDING_STATUS='Y' AND (LCI.CONTRACT_STATUS BETWEEN 31 AND 100 OR LCI
- 2c9c81b66f1cf0bd016f37f08b310022
- FRAME_NUMBER
+ 2c9c81b969188a33016f473dd1b401db
+ MOBILE_
STRING
- 杞︽灦鍙
- FRAME_NUMBER
- 150
+ 鑱旂郴鐢佃瘽
+ MOBILE_
+ 100
18
true
@@ -239,14 +150,205 @@ WHERE WUI.BINDING_STATUS='Y' AND (LCI.CONTRACT_STATUS BETWEEN 31 AND 100 OR LCI
- 2c9c81b66f1cf0bd016f37f08b310024
+ 2c9c81b969188a33016f473dd1b401d8
+ CERTID_
+ STRING
+
+ 韬唤璇佸彿
+ CERTID_
+ 150
+ 19
+ true
+
+ false
+ false
+ false
+ false
+
+
+
+
+
+ 2c9c81b969188a33016f473dd1b401dd
+ CONTRACT_NUMBER
+ STRING
+
+ 鍚堝悓缂栧彿
+ CONTRACT_NUMBER
+ 150
+ 20
+ true
+
+ false
+ false
+ false
+ false
+
+
+
+
+
+ 2c9c81b969188a33016f473dd1b401df
+ STATUS_NAME
+ STRING
+
+ 鍚堝悓鐘舵
+ STATUS_NAME
+ 100
+ 21
+ true
+
+ false
+ false
+ false
+ false
+ CENTER
+
+
+
+
+
+ 2c9c81b969188a33016f473dd1b401d9
+ PRODUCT_NAME
+ STRING
+
+ 浜у搧鍚嶇О
+ PRODUCT_NAME
+ 200
+ 22
+ true
+
+ false
+ false
+ false
+ false
+
+
+
+
+
+ 2c9c81b969188a33016f473dd1b401de
+ DISTRIBUTOR_NAME
+ STRING
+
+ 娓犻亾鍟嗗悕绉
+ DISTRIBUTOR_NAME
+ 200
+ 23
+ true
+
+ false
+ false
+ false
+ false
+
+
+
+
+
+ 2c9c81b969188a33016f473dd1b401da
+ AFFILIATEDNAME
+ STRING
+
+ 鎸傞潬鍏徃
+ AFFILIATEDNAME
+ 200
+ 24
+ true
+
+ false
+ false
+ false
+ false
+
+
+
+
+
+ 2c9c81b969188a33016f473dd1b401dc
+ FRAME_NUMBER
+ STRING
+
+ 杞︽灦鍙
+ FRAME_NUMBER
+ 150
+ 25
+ true
+
+ false
+ false
+ false
+ false
+
+
+
+
+
+ 2c9c81b6710c46490171148b10680004
+ attention_status
+ STRING
+
+ 鏄惁鍏虫敞
+ attention_status
+ 100
+ 26
+ true
+
+ false
+ false
+ false
+ false
+
+
+
+
+
+ 2c9c81b6710c46490171148b105c0001
+ openid
+ STRING
+
+ 寰俊鍞竴鏍囪瘑
+ openid
+ 100
+ 27
+ true
+
+ false
+ false
+ false
+ false
+
+
+
+
+
+ 2c9c81b969188a33016f473dd1b401d7
WECHAT_NAME
STRING
寰俊鍙
WECHAT_NAME
100
- 19
+ 28
+ true
+
+ false
+ false
+ false
+ false
+
+
+
+
+
+ 2c9c81b6710c46490171148b10680005
+ binding_time
+ STRING
+
+ 缁戝畾鏃堕棿
+ binding_time
+ 200
+ 29
true
false
@@ -263,7 +365,7 @@ WHERE WUI.BINDING_STATUS='Y' AND (LCI.CONTRACT_STATUS BETWEEN 31 AND 100 OR LCI
- 2c9c81b66f1cf0bd016f37f08b320028
+ 2c9c81b969188a33016f473dd1b401e0
CUSTOMERNAME
CUSTOMERNAME
瀹㈡埛鍚嶇О
@@ -273,7 +375,7 @@ WHERE WUI.BINDING_STATUS='Y' AND (LCI.CONTRACT_STATUS BETWEEN 31 AND 100 OR LCI
0
- 2c9c81b66f1cf0bd016f37f08b320029
+ 2c9c81b969188a33016f473dd1b401e1
CERTID_
CERTID_
韬唤璇佸彿
@@ -296,12 +398,12 @@ WHERE WUI.BINDING_STATUS='Y' AND (LCI.CONTRACT_STATUS BETWEEN 31 AND 100 OR LCI
- 2c9c81b66f1cf0bd016f37f08b2f001d
+ 2c9c81b969188a33016f473dd1b301d5
0
0
0
- TABLE#2c9c81b66e5d8b8b016eacb4b11f0197
- 2c9c81b66e5d8b8b016eacb3adb80196
+ TABLE#2c9c81b969188a33016f371d633b014b
+ 2c9c81b969188a33016f371d6341014c
TABLE
diff --git a/鎶ヨ〃/姹借溅绫绘姤琛ㄤ簩/淇″鑰冩牳缁熻鎶ヨ〃.xml b/鎶ヨ〃/姹借溅绫绘姤琛ㄤ簩/淇″鑰冩牳缁熻鎶ヨ〃.xml
index 38da0f7e5..b245835c3 100644
--- a/鎶ヨ〃/姹借溅绫绘姤琛ㄤ簩/淇″鑰冩牳缁熻鎶ヨ〃.xml
+++ b/鎶ヨ〃/姹借溅绫绘姤琛ㄤ簩/淇″鑰冩牳缁熻鎶ヨ〃.xml
@@ -37,46 +37,26 @@
xskhtj
2c9023815726a036015726a496b00001
COMPLEXSQL
- SELECT VED.EVERY_DAY AS every_day,IFNULL(CONCAT(FT1.PHASENAME,'/',FT1.USERNAME),'') AS phseanduser,IFNULL(ROUND(FT2.SPSJ/FT3.SP_NUM,2),'') AS spxl,IFNULL(FT1.INPUT_NUM,'') AS inputnum,IFNULL(FT3.SP_NUM,'') AS spjnum,IFNULL(CONCAT(ROUND(IFNULL(FT3.SP_NUM,0)/IFNULL(FT1.INPUT_NUM,0)*100,2),'%'),'') spl,IFNULL(FT4.SP_PASS_NUM,'') AS tgnum,IFNULL(CONCAT(ROUND(IFNULL(FT4.SP_PASS_NUM,0)/IFNULL(FT3.SP_NUM,0)*100,2),'%'),'') AS tgl,IFNULL(FT5.SP_REFUSE_NUM,'') AS thnum,IFNULL(CONCAT(ROUND(IFNULL(FT5.SP_REFUSE_NUM,0)/IFNULL(FT3.SP_NUM,0)*100,2),'%'),'') AS thl,IFNULL(REFUSE1.REFUSE_NUM,'') AS xynum,IFNULL(REFUSE2.REFUSE_NUM,'') AS fynum,IFNULL(REFUSE3.REFUSE_NUM,'') AS xjnum,IFNULL(REFUSE4.REFUSE_NUM,'') AS sfnum,IFNULL(REFUSE5.REFUSE_NUM,'') AS gcnum,IFNULL(REFUSE6.REFUSE_NUM,'') AS zhnum
-FROM VI_EVERY_DAY VED
-LEFT JOIN (SELECT CASE WHEN FT.begintime BETWEEN DATE_FORMAT( FT.begintime, '%Y/%m/%d 17:30:59' ) AND DATE_FORMAT( FT.begintime, '%Y/%m/%d 23:59:59' ) THEN LEFT(DATE_FORMAT(DATE_ADD(FT.begintime, INTERVAL 1 DAY ),'%Y/%m/%d'), 10 ) ELSE LEFT( FT.begintime,10 ) END SP_TIME,MAX(FT.PHASENAME) AS PHASENAME,FT.USERNAME,COUNT(FT.BEGINTIME) INPUT_NUM FROM FLOW_TASK FT WHERE FT.flowname = '涓氬姟鐢宠娴佺▼' AND FT.phaseno='0030' AND (FT.USERNAME IS NOT NULL OR FT.USERNAME <>'') AND FT.BEGINTIME=(SELECT MIN(BEGINTIME) AS BEGINTIME FROM FLOW_TASK WHERE flowname = '涓氬姟鐢宠娴佺▼' AND phaseno='0030' AND (USERNAME IS NOT NULL OR USERNAME <>'') AND OBJECTNO=FT.OBJECTNO GROUP BY OBJECTNO) GROUP BY SP_TIME,FT.USERNAME)FT1 ON FT1.SP_TIME=VED.EVERY_DAY
-LEFT JOIN (SELECT LEFT(FT.ENDTIME,10) AS SP_TIME,SUM(CASE WHEN FT.begintime < DATE_FORMAT(FT.begintime,'%Y/%m/%d 17:30:59' ) AND FT.endtime <DATE_FORMAT(FT.begintime,'%Y/%m/%d 17:30:59' ) THEN TIMESTAMPDIFF( SECOND, FT.begintime, FT.endtime ) WHEN FT.begintime < DATE_FORMAT(FT.begintime,'%Y/%m/%d 17:30:59' ) AND (FT.endtime BETWEEN DATE_FORMAT(FT.begintime,'%Y/%m/%d 17:30:59' ) AND DATE_FORMAT( DATE_ADD(FT.begintime, INTERVAL 1 DAY ), '%Y/%m/%d 09:00:00' ) ) THEN TIMESTAMPDIFF( SECOND, FT.begintime, DATE_FORMAT(FT.begintime,'%Y/%m/%d 17:30:59' ) ) WHEN FT.begintime < DATE_FORMAT(FT.begintime,'%Y/%m/%d 17:30:59' ) AND FT.endtime > DATE_FORMAT( DATE_ADD(FT.begintime, INTERVAL 1 DAY ), '%Y/%m/%d 09:00:00' ) THEN TIMESTAMPDIFF( SECOND,FT.begintime, DATE_FORMAT(FT.begintime,'%Y/%m/%d 17:30:59')) +((TIMESTAMPDIFF(DAY,DATE_FORMAT(FT.begintime,'%Y/%m/%d'),DATE_FORMAT(FT.endtime,'%Y/%m/%d'))-1)*8.5*60*60)+(CASE WHEN (FT.endtime BETWEEN DATE_FORMAT(FT.endtime,'%Y/%m/%d 09:00:00' ) AND DATE_FORMAT(FT.endtime,'%Y/%m/%d 17:30:59' )) THEN TIMESTAMPDIFF(SECOND,DATE_FORMAT(FT.endtime,'%Y/%m/%d 09:00:00' ),FT.endtime) ELSE 0 END) WHEN (FT.begintime BETWEEN DATE_FORMAT(FT.begintime,'%Y/%m/%d 17:30:59' ) AND DATE_FORMAT( DATE_ADD(FT.begintime, INTERVAL 1 DAY ), '%Y/%m/%d 09:00:00' ) ) THEN (CASE WHEN TIMESTAMPDIFF(DAY,DATE_FORMAT(FT.begintime,'%Y/%m/%d'),DATE_FORMAT(FT.endtime,'%Y/%m/%d')) >0 THEN ((TIMESTAMPDIFF(DAY,DATE_FORMAT(FT.begintime,'%Y/%m/%d'),DATE_FORMAT(FT.endtime,'%Y/%m/%d'))-1)*8.5*60*60) ELSE 0 END)+(CASE WHEN FT.endtime BETWEEN DATE_FORMAT(FT.endtime,'%Y/%m/%d 09:00:00' ) AND DATE_FORMAT(FT.endtime,'%Y/%m/%d 17:30:59' ) THEN TIMESTAMPDIFF(SECOND,DATE_FORMAT(FT.endtime,'%Y/%m/%d 09:00:00' ),FT.endtime) ELSE 0 END) ELSE TIMESTAMPDIFF( SECOND, FT.begintime, FT.endtime ) END)/60 SPSJ,FT.USERNAME FROM FLOW_TASK FT WHERE FT.FLOWNAME='涓氬姟鐢宠娴佺▼' AND FT.phaseno='0030' AND FT.endtime IS NOT NULL AND (FT.USERNAME IS NOT NULL OR FT.USERNAME <>'') AND FT.ENDTIME=(SELECT MAX(ENDTIME) AS ENDTIME FROM FLOW_TASK WHERE FLOWNAME='涓氬姟鐢宠娴佺▼' AND phaseno='0030' AND endtime IS NOT NULL AND (USERNAME IS NOT NULL OR USERNAME <>'') AND OBJECTNO=FT.OBJECTNO GROUP BY OBJECTNO) AND NOT EXISTS(SELECT 1 FROM FLOW_TASK WHERE FLOWNAME='涓氬姟鐢宠娴佺▼' AND phasename IN('缁忛攢鍟嗗彂璧','淇″涓撳憳鍒濆','淇″鍒濆') AND (ENDTIME IS NULL OR ENDTIME='') AND OBJECTNO=FT.OBJECTNO) GROUP BY LEFT(FT.endtime,10),FT.USERNAME)FT2 ON FT2.SP_TIME=FT1.SP_TIME AND FT1.USERNAME=FT2.USERNAME
-LEFT JOIN (SELECT LEFT(FT.ENDTIME,10) AS SP_TIME,COUNT(FT.ENDTIME) AS SP_NUM,FT.USERNAME FROM FLOW_TASK FT WHERE FT.FLOWNAME='涓氬姟鐢宠娴佺▼' AND FT.ENDTIME IS NOT NULL AND (FT.USERNAME IS NOT NULL OR FT.USERNAME <>'') AND FT.PHASENO = '0030' AND FT.ENDTIME=(SELECT MIN(ENDTIME) AS ENDTIME FROM FLOW_TASK WHERE FLOWNAME='涓氬姟鐢宠娴佺▼' AND ENDTIME IS NOT NULL AND (USERNAME IS NOT NULL OR USERNAME <>'') AND PHASENO = '0030' AND OBJECTNO=FT.OBJECTNO GROUP BY OBJECTNO) AND EXISTS(SELECT 1 FROM FLOW_OBJECT FO WHERE FO.FLOWNAME='涓氬姟鐢宠娴佺▼' AND FO.OBJECTNO=FT.OBJECTNO AND (FO.PHASENO='1000' OR FO.PHASENO='8000'))GROUP BY LEFT(FT.ENDTIME,10),FT.USERNAME)FT3 ON FT3.SP_TIME=FT1.SP_TIME AND FT3.USERNAME=FT1.USERNAME
-LEFT JOIN (SELECT LEFT(FT.ENDTIME,10) AS SP_TIME,COUNT(FT.ENDTIME) AS SP_PASS_NUM,FT.USERNAME FROM FLOW_TASK FT WHERE FT.FLOWNAME='涓氬姟鐢宠娴佺▼' AND FT.ENDTIME IS NOT NULL AND (FT.USERNAME IS NOT NULL OR FT.USERNAME <>'') AND FT.PHASENO = '0030' AND FT.ENDTIME=(SELECT MIN(ENDTIME) AS ENDTIME FROM FLOW_TASK WHERE FLOWNAME='涓氬姟鐢宠娴佺▼' AND ENDTIME IS NOT NULL AND (USERNAME IS NOT NULL OR USERNAME <>'') AND PHASENO = '0030' AND OBJECTNO=FT.OBJECTNO GROUP BY OBJECTNO) AND EXISTS(SELECT 1 FROM FLOW_OBJECT FO WHERE FO.FLOWNAME='涓氬姟鐢宠娴佺▼' AND FO.OBJECTNO=FT.OBJECTNO AND FO.PHASENO='1000')GROUP BY LEFT(FT.ENDTIME,10),FT.USERNAME)FT4 ON FT4.SP_TIME=FT1.SP_TIME AND FT4.USERNAME=FT1.USERNAME
-LEFT JOIN (SELECT LEFT(ENDTIME,10) AS SP_TIME,FT.PHASENAME,COUNT(ENDTIME) AS SP_REFUSE_NUM,FT.USERNAME FROM FLOW_TASK FT WHERE FT.FLOWNAME='涓氬姟鐢宠娴佺▼' AND FT.ENDTIME IS NOT NULL AND (FT.USERNAME IS NOT NULL OR FT.USERNAME <>'') AND FT.PHASENO = '0030' AND FT.ENDTIME=(SELECT MAX(ENDTIME) AS ENDTIME FROM FLOW_TASK WHERE FLOWNAME='涓氬姟鐢宠娴佺▼' AND ENDTIME IS NOT NULL AND (USERNAME IS NOT NULL OR USERNAME <>'') AND PHASENO = '0030' AND OBJECTNO = FT.OBJECTNO GROUP BY OBJECTNO) AND EXISTS(SELECT 1 FROM FLOW_OBJECT FO WHERE FO.FLOWNAME='涓氬姟鐢宠娴佺▼' AND FO.OBJECTNO=FT.OBJECTNO AND FO.PHASENO='8000')GROUP BY LEFT(FT.ENDTIME,10),FT.USERNAME)FT5 ON FT5.SP_TIME=FT1.SP_TIME AND FT5.USERNAME=FT1.USERNAME
-LEFT JOIN (SELECT xin.SP_TIME AS SP_TIME,COUNT(xin.phaseopinion) REFUSE_NUM,us.username FROM (
-SELECT LEFT(ft.endtime,10) AS SP_TIME,FT.PHASENAME,fob.phaseopinion AS phaseopinion
-,ft.objectno,ft.endtime FROM FLOW_OPINION_BUSINESS FOB LEFT JOIN FLOW_TASK FT ON FT.RELATIVEOBJECTNO=FOB.SERIALNO WHERE FT.FLOWNAME='涓氬姟鐢宠娴佺▼' AND (FT.USERNAME IS NOT NULL OR FT.USERNAME <>'') AND (ft.phaseno='0040' OR ft.phaseno='0060') AND FOB.PHASEOPINION='0010' AND EXISTS(SELECT 1 FROM flow_object fo WHERE FLOWNAME='涓氬姟鐢宠娴佺▼' AND FO.OBJECTNO=FT.OBJECTNO AND FO.PHASENO='8000') ) xin LEFT JOIN (SELECT username,objectno FROM FLOW_TASK WHERE FLOWNAME='涓氬姟鐢宠娴佺▼' AND phaseno='0030' GROUP BY objectno
- ) us ON us.objectno=xin.objectno
-GROUP BY LEFT(xin.endtime,10) )REFUSE1 ON REFUSE1.SP_TIME=FT1.SP_TIME AND REFUSE1.username=FT1.USERNAME
-LEFT JOIN (SELECT xin.SP_TIME AS SP_TIME,COUNT(xin.phaseopinion) REFUSE_NUM,us.username FROM (
-SELECT LEFT(ft.endtime,10) AS SP_TIME,FT.PHASENAME,fob.phaseopinion AS phaseopinion
-,ft.objectno,ft.endtime FROM FLOW_OPINION_BUSINESS FOB LEFT JOIN FLOW_TASK FT ON FT.RELATIVEOBJECTNO=FOB.SERIALNO WHERE FT.FLOWNAME='涓氬姟鐢宠娴佺▼' AND (FT.USERNAME IS NOT NULL OR FT.USERNAME <>'') AND (ft.phaseno='0040' OR ft.phaseno='0060') AND FOB.PHASEOPINION='0020' AND EXISTS(SELECT 1 FROM flow_object fo WHERE FLOWNAME='涓氬姟鐢宠娴佺▼' AND FO.OBJECTNO=FT.OBJECTNO AND FO.PHASENO='8000') ) xin LEFT JOIN (SELECT username,objectno FROM FLOW_TASK WHERE FLOWNAME='涓氬姟鐢宠娴佺▼' AND phaseno='0030' GROUP BY objectno
- ) us ON us.objectno=xin.objectno
-GROUP BY LEFT(xin.endtime,10))REFUSE2 ON REFUSE2.SP_TIME=FT1.SP_TIME AND REFUSE2.username=FT1.USERNAME
-LEFT JOIN (SELECT xin.SP_TIME AS SP_TIME,COUNT(xin.phaseopinion) REFUSE_NUM,us.username FROM (
-SELECT LEFT(ft.endtime,10) AS SP_TIME,FT.PHASENAME,fob.phaseopinion AS phaseopinion
-,ft.objectno,ft.endtime FROM FLOW_OPINION_BUSINESS FOB LEFT JOIN FLOW_TASK FT ON FT.RELATIVEOBJECTNO=FOB.SERIALNO WHERE FT.FLOWNAME='涓氬姟鐢宠娴佺▼' AND (FT.USERNAME IS NOT NULL OR FT.USERNAME <>'') AND (ft.phaseno='0040' OR ft.phaseno='0060') AND FOB.PHASEOPINION='0030' AND EXISTS(SELECT 1 FROM flow_object fo WHERE FLOWNAME='涓氬姟鐢宠娴佺▼' AND FO.OBJECTNO=FT.OBJECTNO AND FO.PHASENO='8000') ) xin LEFT JOIN (SELECT username,objectno FROM FLOW_TASK WHERE FLOWNAME='涓氬姟鐢宠娴佺▼' AND phaseno='0030' GROUP BY objectno
- ) us ON us.objectno=xin.objectno
-GROUP BY LEFT(xin.endtime,10))REFUSE3 ON REFUSE3.SP_TIME=FT1.SP_TIME AND REFUSE3.username=FT1.USERNAME
-LEFT JOIN (SELECT xin.SP_TIME AS SP_TIME,COUNT(xin.phaseopinion) REFUSE_NUM,us.username FROM (
-SELECT LEFT(ft.endtime,10) AS SP_TIME,FT.PHASENAME,fob.phaseopinion AS phaseopinion
-,ft.objectno,ft.endtime FROM FLOW_OPINION_BUSINESS FOB LEFT JOIN FLOW_TASK FT ON FT.RELATIVEOBJECTNO=FOB.SERIALNO WHERE FT.FLOWNAME='涓氬姟鐢宠娴佺▼' AND (FT.USERNAME IS NOT NULL OR FT.USERNAME <>'') AND (ft.phaseno='0040' OR ft.phaseno='0060') AND FOB.PHASEOPINION='0040' AND EXISTS(SELECT 1 FROM flow_object fo WHERE FLOWNAME='涓氬姟鐢宠娴佺▼' AND FO.OBJECTNO=FT.OBJECTNO AND FO.PHASENO='8000') ) xin LEFT JOIN (SELECT username,objectno FROM FLOW_TASK WHERE FLOWNAME='涓氬姟鐢宠娴佺▼' AND phaseno='0030' GROUP BY objectno
- ) us ON us.objectno=xin.objectno
-GROUP BY LEFT(xin.endtime,10))REFUSE4 ON REFUSE4.SP_TIME=FT1.SP_TIME AND REFUSE4.username=FT1.USERNAME
-LEFT JOIN (
-SELECT xin.SP_TIME AS SP_TIME,COUNT(xin.phaseopinion) REFUSE_NUM,us.username FROM (
-SELECT LEFT(ft.endtime,10) AS SP_TIME,FT.PHASENAME,fob.phaseopinion AS phaseopinion
-,ft.objectno,ft.endtime FROM FLOW_OPINION_BUSINESS FOB LEFT JOIN FLOW_TASK FT ON FT.RELATIVEOBJECTNO=FOB.SERIALNO WHERE FT.FLOWNAME='涓氬姟鐢宠娴佺▼' AND (FT.USERNAME IS NOT NULL OR FT.USERNAME <>'') AND (ft.phaseno='0040' OR ft.phaseno='0060') AND FOB.PHASEOPINION='0050' AND EXISTS(SELECT 1 FROM flow_object fo WHERE FLOWNAME='涓氬姟鐢宠娴佺▼' AND FO.OBJECTNO=FT.OBJECTNO AND FO.PHASENO='8000') ) xin LEFT JOIN (SELECT username,objectno FROM FLOW_TASK WHERE FLOWNAME='涓氬姟鐢宠娴佺▼' AND phaseno='0030' GROUP BY objectno
- ) us ON us.objectno=xin.objectno
-GROUP BY LEFT(xin.endtime,10)
-)REFUSE5 ON REFUSE5.SP_TIME=FT1.SP_TIME AND REFUSE5.username=FT1.USERNAME
-LEFT JOIN (SELECT xin.SP_TIME AS SP_TIME,COUNT(xin.phaseopinion) REFUSE_NUM,us.username FROM (
-SELECT LEFT(ft.endtime,10) AS SP_TIME,FT.PHASENAME,fob.phaseopinion AS phaseopinion
-,ft.objectno,ft.endtime FROM FLOW_OPINION_BUSINESS FOB LEFT JOIN FLOW_TASK FT ON FT.RELATIVEOBJECTNO=FOB.SERIALNO WHERE FT.FLOWNAME='涓氬姟鐢宠娴佺▼' AND (FT.USERNAME IS NOT NULL OR FT.USERNAME <>'') AND (ft.phaseno='0040' OR ft.phaseno='0060') AND FOB.PHASEOPINION='0060' AND EXISTS(SELECT 1 FROM flow_object fo WHERE FLOWNAME='涓氬姟鐢宠娴佺▼' AND FO.OBJECTNO=FT.OBJECTNO AND FO.PHASENO='8000') ) xin LEFT JOIN (SELECT username,objectno FROM FLOW_TASK WHERE FLOWNAME='涓氬姟鐢宠娴佺▼' AND phaseno='0030' GROUP BY objectno
- ) us ON us.objectno=xin.objectno
-GROUP BY LEFT(xin.endtime,10))REFUSE6 ON REFUSE6.SP_TIME=FT1.SP_TIME AND REFUSE6.username=FT1.USERNAME
-ORDER BY ved.every_day DESC
+ SELECT
+VED.EVERY_DAY AS every_day,
+IFNULL(CONCAT(st.auditFlowTypeDes,'/',st.username),'') AS phseanduser,
+IFNULL(ROUND(st.audittime/st.count_audit,2),'') AS spxl,
+IFNULL(st.order_count,'') AS inputnum,
+IFNULL(st.count_audit,'') AS spjnum,
+IFNULL(CONCAT(ROUND(IFNULL(st.count_audit,0)/IFNULL(st.order_count,0)*100,2),'%'),'') spl,
+IFNULL(st.count_audit_pass,'') AS tgnum,
+IFNULL(CONCAT(ROUND(IFNULL(st.count_audit_pass,0)/IFNULL(st.count_audit,0)*100,2),'%'),'') AS tgl,
+IFNULL(st.count_audit_refuse,'') AS thnum,
+IFNULL(CONCAT(ROUND(IFNULL(st.count_audit_refuse,0)/IFNULL(st.count_audit,0)*100,2),'%'),'') AS thl,
+IFNULL(st.count_audit_refuse1,'') AS xynum,
+IFNULL(st.count_audit_refuse2,'') AS fynum,
+IFNULL(st.count_audit_refuse3,'') AS xjnum,
+IFNULL(st.count_audit_refuse4,'') AS sfnum,
+IFNULL(st.count_audit_refuse5,'') AS gcnum,
+IFNULL(st.count_audit_refuse6,'') AS zhnum
+FROM VI_EVERY_DAY VED
+LEFT JOIN st_credit_audit_order st ON st.every_day = VED.EVERY_DAY
+ORDER BY ved.every_day DESC