Commit 2783a80d authored by suntao's avatar suntao

审批

parent 26485db9
package cn.quantgroup.cashloanflowboss.api.optlog.entity;
import cn.quantgroup.cashloanflowboss.api.optlog.model.OptEnumName;
import lombok.Data;
import javax.persistence.*;
......@@ -35,6 +36,12 @@ public class OptHistoryLog {
@Column(name = "channel_id")
private Long channelId;
/**
* 操作节点名称
*/
@Column(name = "opt_enum_name")
private OptEnumName optEnumName;
/**
* 操作节点名称
*/
......
package cn.quantgroup.cashloanflowboss.api.optlog.model;
/**
* function:
* date: 2019/9/23
*
* @author: suntao
*/
public enum OptEnumName {
PER_AUDIT("预审"),
APPLY_IN("用户进件"),
WITHDRAW("用户提现"),
AUDIT("审批操作"),
SECORD_AUDIT("二次风控审批操作"),
PAY("放款操作"),
PRE_CANCEL("贷前关单操作"),
LOAN_CANCEL("贷后关单操作"),
ALL_REPAID("结清订单操作");
private String desc;
OptEnumName(String desc) {
this.desc = desc;
}
public String getDesc() {
return this.desc;
}
}
......@@ -22,8 +22,11 @@ import java.util.List;
public interface OptHistoryLogRepository extends PagingAndSortingRepository<OptHistoryLog, Long>, JpaSpecificationExecutor<OptHistoryLog> {
@Query(value = "select * opt_history_log where channel_order_number=?1 and opt_name = ?2 limit 1", nativeQuery = true)
OptHistoryLog findByChannelOrderNumberAndOptName(String channelOrderNumber, String opName);
@Query(value = "select * opt_history_log where channel_order_number=?1 and opt_enum_name = ?2 limit 1", nativeQuery = true)
OptHistoryLog findByChannelOrderNumberAndOptName(String channelOrderNumber, int opName);
@Query(value = "select * opt_history_log where channel_order_number=?1 and opt_enum_name = ?2 and opt_result=1 limit 1", nativeQuery = true)
OptHistoryLog findByChannelOrderNumberAndOptNameAndSuccess(String channelOrderNumber, int opName);
List<OptHistoryLog> findByChannelOrderNumber(String channelOrderNumber);
......
package cn.quantgroup.cashloanflowboss.api.optlog.service;
import cn.quantgroup.cashloanflowboss.api.optlog.entity.OptHistoryLog;
import cn.quantgroup.cashloanflowboss.api.optlog.model.OptEnumName;
import cn.quantgroup.cashloanflowboss.api.order.model.OrderBaseModel;
import java.util.List;
......@@ -18,5 +19,6 @@ public interface OptHistoryLogService {
void save(OptHistoryLog optHistoryLog);
OptHistoryLog findByChannelOrderNumberAndOptName(String channelOrderNumber, String opName);
OptHistoryLog findByChannelOrderNumberAndOptName(String channelOrderNumber, OptEnumName opName);
OptHistoryLog findByChannelOrderNumberAndOptNameAndSuccess(String channelOrderNumber, OptEnumName opName);
}
package cn.quantgroup.cashloanflowboss.api.optlog.service;
import cn.quantgroup.cashloanflowboss.api.optlog.entity.OptHistoryLog;
import cn.quantgroup.cashloanflowboss.api.optlog.model.OptEnumName;
import cn.quantgroup.cashloanflowboss.api.optlog.repository.OptHistoryLogRepository;
import cn.quantgroup.cashloanflowboss.api.order.model.OrderBaseModel;
import cn.quantgroup.cashloanflowboss.api.order.util.OrderUtil;
......@@ -114,8 +115,13 @@ public class OptHistoryLogServiceImpl implements OptHistoryLogService {
@Override
public OptHistoryLog findByChannelOrderNumberAndOptName(String channelOrderNumber, String opName) {
return optHistoryLogRepository.findByChannelOrderNumberAndOptName(channelOrderNumber, opName);
public OptHistoryLog findByChannelOrderNumberAndOptName(String channelOrderNumber, OptEnumName opName) {
return optHistoryLogRepository.findByChannelOrderNumberAndOptName(channelOrderNumber, opName.ordinal());
}
@Override
public OptHistoryLog findByChannelOrderNumberAndOptNameAndSuccess(String channelOrderNumber, OptEnumName opName) {
return optHistoryLogRepository.findByChannelOrderNumberAndOptNameAndSuccess(channelOrderNumber, opName.ordinal());
}
}
......@@ -38,7 +38,6 @@ public class OrderVo {
audit("审批"),
cancel("贷前关单"),
second_audit("二次风控审批"),
reload_second_audit_job("刷新待放款任务"),
pay_succ("放款成功"),
pay_fail("放款失败"),
withdraw_second("存管提现"),
......
package cn.quantgroup.cashloanflowboss.api.order.service;
import cn.quantgroup.cashloanflowboss.api.optlog.entity.OptHistoryLog;
import cn.quantgroup.cashloanflowboss.api.optlog.model.OptEnumName;
import cn.quantgroup.cashloanflowboss.api.optlog.service.OptHistoryLogServiceImpl;
import cn.quantgroup.cashloanflowboss.spi.clf.entity.CallbackFailRecord;
import cn.quantgroup.cashloanflowboss.spi.clf.model.LoanProgress;
......@@ -271,29 +272,31 @@ public class OrderServiceImpl implements OrderService{
}
// 操作记录
String optLogDetail = approveVo.getIsPass() ? "审批通过:" : "审批拒绝:";
OptHistoryLog optHistoryLog = new OptHistoryLog();
optHistoryLog.setChannelOrderNumber(approveVo.getChannelOrderNumber());
optHistoryLog.setCreditNumber(orderMapping.getApplyNo());
optHistoryLog.setLoanId(orderMapping.getLoanId());
optHistoryLog.setChannelId(orderMapping.getRegisteredFrom());
optHistoryLog.setOptName("审批操作");
optHistoryLog.setOptEnumName(OptEnumName.AUDIT);
optHistoryLog.setOptName(OptEnumName.AUDIT.getDesc());
optHistoryLog.setCreateTime(new Date());
Boolean optResult;
if ("success".equals(approveStringResult)) {
optHistoryLog.setOptLogDetail(corpPolicyValidate ? "" : "资产计划未配置,请联系管理员配置");
optLogDetail = optLogDetail.concat(corpPolicyValidate ? "" : "资产计划未配置,请联系管理员配置");
optHistoryLog.setOptResult(true);
optResult = true;
log.info("审批申请成功,channelOrderNumber={}", orderMapping.getChannelOrderNo());
} else {
optLogDetail = optLogDetail.concat("审批失败");
optHistoryLog.setOptResult(false);
optHistoryLog.setOptLogDetail("审批失败");
log.info("审批申请失败,channelOrderNumber={},requestParam={}", orderMapping.getChannelOrderNo(), JSONTools.serialize(data));
optResult = false;
}
optHistoryLog.setOptLogDetail(optLogDetail);
optHistoryLogService.save(optHistoryLog);
return new Tuple<>(optResult, corpPolicyValidate);
......@@ -310,21 +313,19 @@ public class OrderServiceImpl implements OrderService{
@Override
public boolean secondAudit(String channelOrderNumber) {
String opName = "二次审批操作";
OptEnumName secondAudit = OptEnumName.SECORD_AUDIT;
boolean result = true;
// 操作记录
OptHistoryLog optHistoryLog = new OptHistoryLog();
optHistoryLog.setChannelOrderNumber(channelOrderNumber);
optHistoryLog.setOptEnumName(secondAudit);
optHistoryLog.setOptName(secondAudit.getDesc());
ClfOrderMapping orderMapping = this.clfOrderMappingRepository.findByChannelOrderNoLastOne(channelOrderNumber);
if (orderMapping == null || orderMapping.getLoanId() == null) {
log.info("secondAudit,orderMapping为空或者loanId为空,channelOrderNumber=".concat(channelOrderNumber));
optHistoryLog.setOptName(opName);
optHistoryLog.setOptLogDetail("orderMapping为空或者loanId为空,操作失败");
optHistoryLog.setOptResult(false);
optHistoryLog.setCreateTime(new Date());
......@@ -335,11 +336,10 @@ public class OrderServiceImpl implements OrderService{
optHistoryLog.setCreditNumber(orderMapping.getApplyNo());
optHistoryLog.setLoanId(orderMapping.getLoanId());
optHistoryLog.setChannelId(orderMapping.getRegisteredFrom());
optHistoryLog.setOptName(opName);
optHistoryLog.setCreateTime(new Date());
OptHistoryLog optHistoryLogExsit = optHistoryLogService.findByChannelOrderNumberAndOptName(channelOrderNumber, opName);
if (optHistoryLogExsit != null && optHistoryLogExsit.getOptResult()) {
OptHistoryLog optHistoryLogExsit = optHistoryLogService.findByChannelOrderNumberAndOptNameAndSuccess(channelOrderNumber, secondAudit);
if (optHistoryLogExsit != null) {
log.info("secondAudit,已经操作成功,channelOrderNumber=".concat(channelOrderNumber));
optHistoryLog.setOptLogDetail("已经操作成功. 重复操作");
optHistoryLog.setOptResult(true);
......@@ -434,7 +434,7 @@ public class OrderServiceImpl implements OrderService{
ClfOrderMapping orderMapping = this.clfOrderMappingRepository.findByChannelOrderNoAndRegisteredFromLastOne(lendingFormModel.getChannelOrderNumber(), lendingFormModel.getChannelId());
String optDetail = "";
String optDetail = lendingFormModel.getResult() ? "放款成功:" : "放款失败:";
// 操作记录
OptHistoryLog optHistoryLog = new OptHistoryLog();
......@@ -442,7 +442,8 @@ public class OrderServiceImpl implements OrderService{
optHistoryLog.setCreditNumber(orderMapping.getApplyNo());
optHistoryLog.setLoanId(orderMapping.getLoanId());
optHistoryLog.setChannelId(orderMapping.getRegisteredFrom());
optHistoryLog.setOptName("放款操作");
optHistoryLog.setOptEnumName(OptEnumName.PAY);
optHistoryLog.setOptName(OptEnumName.PAY.getDesc());
optHistoryLog.setCreateTime(new Date());
......@@ -730,17 +731,17 @@ public class OrderServiceImpl implements OrderService{
tuple.setValue(buttonList);
return tuple;
case "APPROVE_ING" :
OrderApprove orderApprove = orderApproveRepository.findByCreditNumber(orderMapping.getApplyNo());
if (orderApprove == null) {
OptHistoryLog optHistoryLog = optHistoryLogService.findByChannelOrderNumberAndOptNameAndSuccess(orderMapping.getChannelOrderNo(), OptEnumName.AUDIT);
if (optHistoryLog == null) {
tuple.setKey("审批中");
tuple.setValue(buttonList);
} else {
OrderVo.OptButton buttonApprove2 = new OrderVo.OptButton();
buttonApprove2.setAction(OrderVo.OptButtonAction.audit.name());
buttonApprove2.setName(OrderVo.OptButtonAction.audit.getDesc());
buttonList.add(buttonApprove2);
tuple.setKey("授信成功,待审批");
tuple.setValue(buttonList);
} else {
tuple.setKey("审批中(等待几分钟)");
tuple.setValue(buttonList);
}
return tuple;
case "REJECT" :
......
package cn.quantgroup.cashloanflowboss.api.order.util;
import cn.quantgroup.cashloanflowboss.api.optlog.entity.OptHistoryLog;
import cn.quantgroup.cashloanflowboss.api.optlog.model.OptEnumName;
import cn.quantgroup.cashloanflowboss.api.order.entity.OrderApprove;
import cn.quantgroup.cashloanflowboss.core.base.Tuple;
import cn.quantgroup.cashloanflowboss.spi.clf.entity.ApplyRequestHistory;
......@@ -10,6 +11,7 @@ import cn.quantgroup.cashloanflowboss.spi.clf.model.KANoticeType;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import java.awt.font.OpenType;
import java.util.ArrayList;
import java.util.List;
......@@ -129,11 +131,16 @@ public class OrderUtil {
return new Tuple(kaNoticeType, "未知状态");
}
/**
* ka 的 进件记录 转换成 操作记录
* @param applyRequestHistoryList
* @param orderMapping
* @return
*/
public static List<OptHistoryLog> convertApplyRequestHistoryList2OptHistoryLogList(List<ApplyRequestHistory> applyRequestHistoryList, ClfOrderMapping orderMapping) {
List<OptHistoryLog> optHistoryLogs = new ArrayList<>();
for (ApplyRequestHistory applyRequestHistory : applyRequestHistoryList) {
OptHistoryLog optHistoryLog = new OptHistoryLog();
optHistoryLog.setId(0L);
optHistoryLog.setChannelOrderNumber(applyRequestHistory.getChannelOrderNo());
optHistoryLog.setCreditNumber(orderMapping.getApplyNo());
optHistoryLog.setLoanId(orderMapping.getLoanId());
......@@ -149,6 +156,11 @@ public class OrderUtil {
return optHistoryLogs;
}
/**
* ka api 提现转换 opt
* @param withdrawRecordList
* @return
*/
public static List<OptHistoryLog> convertWithdrawRecordList2UserOptHistoryLogList(List<WithdrawRecord> withdrawRecordList) {
if (CollectionUtils.isEmpty(withdrawRecordList)) {
return null;
......@@ -158,7 +170,7 @@ public class OrderUtil {
OptHistoryLog optHistoryLog = new OptHistoryLog();
optHistoryLog.setChannelOrderNumber(withdrawRecord.getChannelOrderNo());
optHistoryLog.setChannelId(withdrawRecord.getChannelId());
optHistoryLog.setOptName("api提现操作");
optHistoryLog.setOptName(OptEnumName.WITHDRAW.getDesc());
optHistoryLog.setOptUser("");
optHistoryLog.setOptLogDetail(withdrawRecord.getDescriptionDetail());
optHistoryLog.setExtData("");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment