Upd:信用卡合规流程

master
dulingling 5 years ago
parent 5fcebd1235
commit b12b62f73e

@ -4762,24 +4762,13 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid
}
JSONObject cardFlowInfo = sysClientUpayProfileMapper.findInfo(clientId);
if(null != cardFlowInfo){
JSONObject cardFlow = new JSONObject(){{
put("client_id",clientId);
put("upay_approve_result",4);
put("upay_open_status",1);
put("upay_approve_time",new Date());
}};
sysClientUpayProfileMapper.save(cardFlow);
}else{
JSONObject cardFlow = new JSONObject(){{
put("client_id",clientId);
put("upay_open_status",1);
put("upay_approve_result",4);
put("upay_approve_time",new Date());
}};
sysClientUpayProfileMapper.save(cardFlow);
}
JSONObject cardFlow = new JSONObject(){{
put("client_id",clientId);
put("upay_approve_result",4);
put("upay_open_status",1);
put("upay_approve_time",new Date());
}};
sysClientUpayProfileMapper.update(cardFlow);
saveClientAuditProcess(client.getIntValue("client_id"), null, 1, "提交Compliance制作合同", manager,2);
}
@ -7356,7 +7345,7 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid
}
//获取数据源
int clientId = client.getInteger("client_id");
JSONObject clientRate = clientRateMapper.latestCardChannelCleanDays("rpaypmt_card", clientId);
JSONObject clientRate = merchantInfoProvider.clientCurrentRate(clientId, new Date(), "rpaypmt_card");
if (clientRate == null) {
throw new BadRequestException("rpaypmt_card rate Not configured");
}
@ -7372,7 +7361,7 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid
info.put("partner_state", client.getString("state"));//洲
info.put("partner_bussiness_name", client.getString("business_name"));//商户商用名称
info.put("clean_days", client.getInteger("clean_days"));//T+规则清算天数
info.put("partner_industry_mcc", upayProfileInfo.getString("mv_industy"));//信用卡注册商户行业编码
info.put("partner_industry_mcc", upayProfileInfo.getString("mv_industry"));//信用卡注册商户行业编码
info.put("legal_bussiness", client.getString("contact_person") + " AS " + (client.containsKey("business_name")?client.getString("business_name"):client.getString("contact_person")) + " ABN " + client.getString("abn"));//拼接规则:法人名 AS 商用名称 ABD 编码
info.put("annual_rate",cardAnnualRate);//年费率
info.put("cost_per_transaction", clientRate.getString("transaction_fee"));//每次交易成本
@ -7405,12 +7394,11 @@ public class ClientManagerImpl implements ClientManager, ManagerTodoNoticeProvid
throw new BadRequestException("The merchant failed the audit!");
}
int clientId = client.getInteger("client_id");
JSONObject clientRate = clientRateMapper.latestCardChannelCleanDays("rpaypmt_card", clientId);
JSONObject clientRate = merchantInfoProvider.clientCurrentRate(clientId, new Date(), "rpaypmt_card");
if (clientRate == null) {
throw new BadRequestException("rpaypmt_card rate Not configured");
}
JSONObject cardRate = clientRate.getJSONObject("ext_rates");
JSONObject bankAccountInfo = clientBankAccountMapper.clientBankAccounts(clientId).get(0);
JSONObject info = new JSONObject();
info.put("down_date", convertDateEnglish(new Date()));//下载文件日期

@ -76,8 +76,8 @@ require(['angular', 'jquery'], function (angular, $) {
});
function boot(user) {
var paths = ['static/boot/managerMainAppv2', 'static/menu/managerMenu','static/analysis/org/analysis-org', 'static/analysis/report/analysis-report', 'static/analysis/monitoring/analysis-monitoring', 'static/analysis/bd/analysis-bd','static/analysis/trans-analysis'];
var moduleNames = ['managerMainAppv2', 'listMenuApp','analysisTransaction', 'analysisBD', 'analysisOrg', 'analysisMonitoring', 'analysisReport'];
var paths = ['static/boot/managerMainAppv2', 'static/menu/managerMenu','static/analysis/org/analysis-org', 'static/analysis/report/analysis-report', 'static/analysis/monitoring/analysis-monitoring', 'static/analysis/bd/analysis-bd','static/analysis/trans-analysis','static/payment/partner/add-partner'];
var moduleNames = ['managerMainAppv2', 'listMenuApp','analysisTransaction', 'analysisBD', 'analysisOrg', 'analysisMonitoring', 'analysisReport','addPartnerApp'];
window.currentUser = user;
angular.forEach(user.modules, function (mod) {
paths.push(mod.js_path);

@ -593,7 +593,7 @@ define(['angular', 'decimal', 'static/commons/commons', 'uiBootstrap', 'uiRouter
choises: choises,
contentHtml: contentHtml
}).then(function () {
$http.put('/sys/partners/' + $scope.partner.client_moniker + '/card_promotiona_agree_pdf', {pass: 1}).then(function () {
$http.put('/sys/partners/' + $scope.partner.client_moniker + '/card_audit', {pass: 1}).then(function () {
if ($scope.partner.approve_result == 2 && ($scope.partner.source == 1 || $scope.partner.source == 2)) {
commonDialog.alert({
title: 'Success',

@ -238,27 +238,27 @@
<div class="box box-warning" ng-if="('10'|withRole)">
<div class="box-header with-border">
<h3 class="box-title"><span style="width: 20px;height: 20px"><img style="height: 20px;width: 20px" src="/static/images/card_payment_sign.png"></span>
Compliance <span ng-if="partner.card_flow_info.approve_result==5 || partner.card_flow_info.refuse_remark.length>0"
Compliance <span ng-if="partner.upay_approve_result==5 || partner.upay_refuse_remark.length>0"
style="color: red">(Refused
<small class=""
ng-if="partner.approve_result==5 || partner.refuse_remark.length>0">:{{partner.refuse_remark}}</small>)</span>
<span ng-if="(partner.source==1 || partner.source==2) && partner.card_flow_info.approve_result==2"
<span ng-if="(partner.source==1 || partner.source==2) && partner.upay_approve_result==2"
style="color: green">(The Partner Using Green Channel Now!)</span>
【目前状态】-
<b ng-if="partner.source==4">
<span ng-if="!partner.card_flow_info.approve_result">(自助申请)资料完善中</span>
<span ng-if="partner.card_flow_info.approve_result==1">(自助申请)已开通</span>
<span ng-if="partner.card_flow_info.approve_result==2">(自助申请)快速开通等待提交合规材料</span>
<span ng-if="partner.card_flow_info.approve_result==3">(自助申请)待审核(材料已提交)</span>
<span ng-if="!partner.upay_approve_result">(自助申请)资料完善中</span>
<span ng-if="partner.upay_approve_result==1">(自助申请)已开通</span>
<span ng-if="partner.upay_approve_result==2">(自助申请)快速开通等待提交合规材料</span>
<span ng-if="partner.upay_approve_result==3">(自助申请)待审核(材料已提交)</span>
</b>
<b ng-if="partner.source!=4">
<span ng-if="!partner.card_flow_info.open_status">资料完善中</span>
<span ng-if="partner.card_flow_info.open_status==1">待审核(合同制作中)</span>
<span ng-if="partner.card_flow_info.open_status==2">合同制作完成</span>
<span ng-if="partner.card_flow_info.open_status==3">BD处理中</span>
<span ng-if="partner.card_flow_info.open_status==4">待审核(合规文件已提交)</span>
<span ng-if="partner.card_flow_info.open_status==5">通过</span>
<span ng-if="partner.card_flow_info.open_status==0">不通过</span>
<span ng-if="!partner.upay_open_status">资料完善中</span>
<span ng-if="partner.upay_open_status==1">待审核(合同制作中)</span>
<span ng-if="partner.upay_open_status==2">合同制作完成</span>
<span ng-if="partner.upay_open_status==3">BD处理中</span>
<span ng-if="partner.upay_open_status==4">待审核(合规文件已提交)</span>
<span ng-if="partner.upay_open_status==5">通过</span>
<span ng-if="partner.upay_open_status==0">不通过</span>
</b>
<span ng-if="partner.is_valid==0" ng-class="{pass_timeout:partner.is_valid==0}">(已禁用)</span>
</h3>
@ -267,20 +267,20 @@
</button>
</div>
<div class="box-body" ng-if="partner.is_valid==1">
<div style="margin-bottom: 5px" ng-if="partner.card_flow_info.open_status != 5">
<div style="margin-bottom: 5px" ng-if="partner.upay_open_status != 5">
<!--<a role="button" type="button" class="btn btn-success" ng-click="exportPDF()">-->
<!--制作合同</a>-->
<a role="button" type="button" class="btn btn-success" ng-click="exportCardAgreegatePDF()">
制作卡支付合同</a>
<a role="button" type="button" class="btn btn-success" ng-click="exportCardPromotionaAgreegatePDF()">
<a ng-if="letterOfOfferFileManager.letter_of_offer_file" role="button" type="button" class="btn btn-success" ng-click="exportCardPromotionaAgreegatePDF()">
制作促销合同</a>
</div>
<div class="btn-group pull-right" role="group" aria-label="...">
<button type="button" ng-if="partner.card_flow_info.open_status==1 && partner.card_flow_info.approve_result>1 || partner.card_flow_info.open_status==4"
<button type="button" ng-if="partner.upay_open_status==1 && partner.upay_approve_result>1 || partner.upay_open_status==4"
class="btn btn-success" ng-click="passCardClient()">Pass
</button>
<button ng-if="partner.card_flow_info.open_status==1 ||partner.card_flow_info.open_status==4"
<button ng-if="partner.upay_open_status==1 ||partner.upay_open_status==4"
type="button" class="btn btn-primary" ng-click="cardRefuse()">Refuse
</button>
</div>
@ -293,8 +293,8 @@
<a ng-if="promotionalOfferFileManager.promotional_offer_file" role="button" class="btn-group btn btn-warning"
type="button" ng-href="{{promotionalOfferFileManager.promotional_offer_file}}" target="_blank"> <i
class="fa fa-download"></i>下载Promotional Offer合同</a>
<span style="margin-top: 5px"ng-if="partner.card_flow_info.open_status != 5">
<a ng-if="partner.card_flow_info.open_status==2" role="button" type="button" class="btn btn-primary"
<span style="margin-top: 5px"ng-if="partner.upay_open_status != 5">
<a ng-if="partner.upay_open_status==2" role="button" type="button" class="btn btn-primary"
ng-click="cardNotifyBD()">
<i class="fa fa-thumb-tack"></i> Notify BD</a>
</span>
@ -310,11 +310,11 @@
<i class="fa fa-arrow-right" aria-hidden="true"></i>
<div class="btn-group-vertical">
<button type="button" class="btn btn-xs btn-primary"
ng-class="{'btn-danger':log.remark.indexOf('打回')>-1,'btn-success':log.open_status==5||(log.open_status==1)}">
ng-class="{'btn-danger':log.remark.indexOf('打回')>-1,'btn-success':log.open_status_to==5||(log.open_status_from==10 && log.open_status_to==1)}">
{{log.remark}}
</button>
<button type="button" class="btn btn-xs btn-primary"
ng-class="{'btn-danger':log.remark.indexOf('打回')>-1,'btn-success':log.open_status==5||(log.open_status==1)}">
ng-class="{'btn-danger':log.remark.indexOf('打回')>-1,'btn-success':log.open_status_to==5||(log.open_status_from==10 && log.open_status_to==1)}">
{{log.operator}} | {{log.create_time}}
</button>
</div>
@ -325,50 +325,50 @@
</div>
<!-- 给BD权限查看 -->
<div class="box" ng-if="('100'|withRole) && partner.show_all_permission"
ng-class="{'box-warning':partner.card_flow_info.approve_result!=5,'box-danger':partner.card_flow_info.approve_result==5}">
ng-class="{'box-warning':partner.upay_approve_result!=5,'box-danger':partner.upay_approve_result==5}">
<div class="box-header with-border">
<h3 class="box-title"><img style="height: 20px;width: 20px" src="/static/images/card_payment_sign.png"> Operation <span ng-if="partner.card_flow_info.approve_result==5" style="color: red">
<h3 class="box-title"><img style="height: 20px;width: 20px" src="/static/images/card_payment_sign.png"> Operation <span ng-if="partner.upay_approve_result==5" style="color: red">
(Refused
<small class="" ng-if="partner.card_flow_info.approve_result==5">:{{partner.card_flow_info.refuse_remark}}</small>
<small class="" ng-if="partner.upay_approve_result==5">:{{partner.upay_refuse_remark}}</small>
)</span><span ng-if="(partner.source==1 || partner.source==2) && partner.approve_result==2"
style="color: green">(The Partner Using Green Channel Now!)</span>
【目前状态】-
<span ng-if="!partner.card_flow_info.open_status">资料完善中</span>
<span ng-if="partner.card_flow_info.open_status==1">待审核(合同制作中)</span>
<span ng-if="partner.card_flow_info.open_status==2">合同制作完成</span>
<span ng-if="partner.card_flow_info.open_status==3">BD处理中</span>
<span ng-if="partner.card_flow_info.open_status==4">待审核(合规文件已提交)</span>
<span ng-if="partner.card_flow_info.open_status==5">通过</span>
<span ng-if="partner.card_flow_info.open_status==0">不通过</span>
<span ng-if="partner.card_flow_info.open_status==10">绿色通道申请中</span>
<span ng-if="!partner.upay_open_status">资料完善中</span>
<span ng-if="partner.upay_open_status==1">待审核(合同制作中)</span>
<span ng-if="partner.upay_open_status==2">合同制作完成</span>
<span ng-if="partner.upay_open_status==3">BD处理中</span>
<span ng-if="partner.upay_open_status==4">待审核(合规文件已提交)</span>
<span ng-if="partner.upay_open_status==5">通过</span>
<span ng-if="partner.upay_open_status==0">不通过</span>
<span ng-if="partner.upay_open_status==10">绿色通道申请中</span>
</h3>
</div>
<div class="box-body">
<a ng-if="letterOfOfferFileManager.letter_of_offer_file && partner.card_flow_info.open_status==3" role="button" class="btn-group btn btn-warning"
<a ng-if="letterOfOfferFileManager.letter_of_offer_file && partner.upay_approve_result!=1" role="button" class="btn-group btn btn-warning"
type="button" ng-href="{{letterOfOfferFileManager.letter_of_offer_file}}" target="_blank"> <i
class="fa fa-download"></i>下载Letter Of Offer合同</a>
<a ng-if="termsAndConditionsFile.terms_and_conditions_file && partner.card_flow_info.open_status==3" role="button" class="btn-group btn btn-warning"
<a ng-if="termsAndConditionsFile.terms_and_conditions_file && partner.upay_approve_result!=1" role="button" class="btn-group btn btn-warning"
type="button" ng-href="{{termsAndConditionsFile.terms_and_conditions_file}}" target="_blank"> <i
class="fa fa-download"></i>下载Terms And Conditions合同</a>
<a ng-if="promotionalOfferFileManager.promotional_offer_file && partner.card_flow_info.open_status==3" role="button" class="btn-group btn btn-warning"
<a ng-if="promotionalOfferFileManager.promotional_offer_file && partner.upay_approve_result!=1" role="button" class="btn-group btn btn-warning"
type="button" ng-href="{{promotionalOfferFileManager.promotional_offer_file}}" target="_blank"> <i
class="fa fa-download"></i>下载Promotional Offer合同</a>
<div ng-if="partner.card_flow_info.open_status==3" class="btn-group pull-right" role="group" aria-label="...">
<div ng-if="partner.upay_open_status==3" class="btn-group pull-right" role="group" aria-label="...">
<button type="button" class="btn btn-danger" ng-click="commitToCardCompliance()">Commit to Compliance
</button>
</div>
<!--<div>
<a ng-if="letterOfOfferFileManager.letter_of_offer_file && partner.card_flow_info.open_status==3" role="button" class="btn-group btn btn-success"
<a ng-if="letterOfOfferFileManager.letter_of_offer_file && partner.upay_open_status==3" role="button" class="btn-group btn btn-success"
type="button" ng-href="{{letterOfOfferFileManager.letter_of_offer_file}}" target="_blank"> <i
class="fa fa-upload"></i>上传签约Letter Of Offer合同</a>
<a ng-if="termsAndConditionsFile.terms_and_conditions_file && partner.card_flow_info.open_status==3" role="button" class="btn-group btn btn-success"
<a ng-if="termsAndConditionsFile.terms_and_conditions_file && partner.upay_open_status==3" role="button" class="btn-group btn btn-success"
type="button" ng-href="{{termsAndConditionsFile.terms_and_conditions_file}}" target="_blank"> <i
class="fa fa-upload"></i>上传签约Terms And Conditions合同</a>
<a ng-if="promotionalOfferFileManager.promotional_offer_file && partner.card_flow_info.open_status==3" role="button" class="btn-group btn btn-success"
<a ng-if="promotionalOfferFileManager.promotional_offer_file && partner.upay_open_status==3" role="button" class="btn-group btn btn-success"
type="button" ng-href="{{promotionalOfferFileManager.promotional_offer_file}}" target="_blank"> <i
class="fa fa-upload"></i>上传签约Promotional Offer合同</a>
</div>-->
<div ng-if="!partner.card_flow_info.open_status" class="btn-group pull-right" role="group" aria-label="...">
<div ng-if="!partner.upay_open_status" class="btn-group pull-right" role="group" aria-label="...">
<button type="button" class="btn btn-primary" ng-click="apply2makeCardAgreeFile()">
<i class="fa fa-paper-plane"></i>
提交合规制作合同
@ -384,7 +384,7 @@
</small>
<small ng-repeat="log in partner.audit_card_logs">
<i class="fa fa-arrow-right" aria-hidden="true" style="margin-top: 5px"></i>
<div class="btn-group-vertical" style="margin-top: 5px">
<div class="btn-group-vertical">
<button type="button" class="btn btn-xs btn-primary"
ng-class="{'btn-danger':log.remark.indexOf('打回')>-1,'btn-success':log.open_status_to==5||(log.open_status_from==10 && log.open_status_to==1)}">
{{log.remark}}
@ -402,7 +402,7 @@
<!-- 邮件重发通知 -->
<div class="box box-warning" ng-if="(partner.approve_result==1 && partner.approve_email_send==2) ||
(partner.card_flow_info && partner.card_flow_info.approve_result==1 && partner.card_flow_info.approve_email_send==2)">
(partner.upay_approve_result==1 && partner.upay_approve_email_send==2)">
<div class="box-header with-border">
<h3 class="box-title">Solved</h3>
</div>
@ -1305,9 +1305,9 @@
</div>
<div style="text-align: center">
<a role="button" style="margin-bottom: 25px;float: left;" class="btn btn-danger btn-sm ng-scope" ng-click="deleteClient()">Cancel</a>
<a role="button" style="margin-bottom: 25px;" class="btn btn-success btn-sm ng-scope"
ng-if="('10'|withRole)" ng-click="complianceCheck()">check</a>
<a role="button" style="margin-bottom: 25px;" class="btn btn-danger btn-sm ng-scope" ng-click="deleteClient()">Cancel</a>
</div>
</div>
</div>

@ -254,3 +254,6 @@
</div>
</div>
</div>
<div style="text-align: center">
<a role="button" style="margin-bottom: 25px;" class="btn btn-success btn-sm ng-scope" ng-if="('10'|withRole)" ng-click="complianceCheck()">check</a>
</div>
Loading…
Cancel
Save