Commit 6c0ff312 authored by panhong18943's avatar panhong18943

汇丰银企直连

parent 93dc6f80
......@@ -113,6 +113,12 @@
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-nop</artifactId>
<version>1.7.32</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.hand.hls</groupId>
<artifactId>leaf-core-db</artifactId>
......@@ -200,6 +206,16 @@
<artifactId>activation</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>com.jcraft</groupId>
<artifactId>jsch</artifactId>
<version>0.1.55</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.3.14</version>
</dependency>
</dependencies>
<build>
<finalName>hlcm</finalName>
......
package com.hand.hsbc;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.Properties;
public class AuthTypeMode {
public String authType;
public String authValue;
public AuthTypeMode(String authType, String authValue) {
this.authType = authType;
this.authValue = authValue;
}
String getAuthType() {
return authType;
}
String getAuthValue() {
return authValue;
}
public static String getProperties(String item) {
String value = "";
System.out.println("连接成功建立333" + item);
System.out.println("连接成功建立444" + Thread.currentThread().getContextClassLoader().getResource("").getPath());
Properties prop = new Properties();
try {
//
InputStream in = new BufferedInputStream(new FileInputStream(Thread
.currentThread().getContextClassLoader().getResource("")
.getPath()
+ "/paraconfig.properties"));
//
prop.load(in);
value = prop.getProperty(item);
in.close();
} catch (Exception e) {
}
return value;
}
}
package com.hand.hsbc;
import java.io.File;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.Namespace;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;
public class SaxReaderXml {
/**
* <p>
* 解析汇丰银行确认文件1,确认文件1无误则有2
* </p>
*
* @author keyouyuan16914
* @version 1.0.0
* @date 2020/01/18
*/
public static String parseacKnowledge1(String path) {
path = "C:\\Users\\User\\Desktop\\testfiledir\\down_confirm\\error1.xml";
SAXReader reader = new SAXReader();
Document document;
String error_msg = "";
try {
document = reader.read(new File(path));
Element root = document.getRootElement();
Element Body = root.element("CstmrPmtStsRpt");
List<Element> OrgnlGrpInfAndSts = Body.element("OrgnlGrpInfAndSts").elements();
for (int i = 0; i < OrgnlGrpInfAndSts.size(); i++) {
Element item = OrgnlGrpInfAndSts.get(i);
String GrpSts = null;
if (item.getName() == "GrpSts") {
GrpSts = item.getTextTrim();
/* System.out.println(GrpSts); */
if ("".equals(GrpSts)) {
GrpSts = null;
}
}
if (GrpSts == "ACCP") {
return "SUCCESS";
} else {
if (item.getName() == "StsRsnInf") {
List<Element> StsRsnInfs = item.elements();
for (int j = 0; j < StsRsnInfs.size(); j++) {
Element item2 = StsRsnInfs.get(j);
if (item2.getName() == "AddtlInf") {
error_msg += item2.getTextTrim();
}
}
}
/* System.out.println(error_msg); */
}
}
} catch (DocumentException e) {
e.printStackTrace();
}
return error_msg;
}
/**
* <p>
* 解析汇丰银行确认文件2
* </p>
*
* @author keyouyuan16914
* @version 1.0.0
* @date 2020/01/18
*/
public static String parseacKnowledge2(String path) {
path = "C:\\Users\\User\\Desktop\\testfiledir\\down_confirm\\正确确认文件2.xml";
SAXReader reader = new SAXReader();
Document document;
String error_msg = "";
try {
document = reader.read(new File(path));
Element root = document.getRootElement();
Element Body = root.element("CstmrPmtStsRpt");
List<Element> OrgnlGrpInfAndSts = Body.element("OrgnlPmtInfAndSts").elements();
for (int i = 0; i < OrgnlGrpInfAndSts.size(); i++) {
Element item = OrgnlGrpInfAndSts.get(i);
String PmtInfSts = null;
if (item.getName() == "PmtInfSts") {
PmtInfSts = item.getTextTrim();
/* System.out.println(GrpSts); */
if ("".equals(PmtInfSts)) {
PmtInfSts = null;
}
}
if (PmtInfSts == "ACCP") {
return "SUCCESS";
} else {
// 此处需要进行判断
/*
* if(item.getName()=="StsRsnInf") { List<Element> StsRsnInfs=item.elements();
* for (int j=0; j<StsRsnInfs.size(); j++) { Element item2 = StsRsnInfs.get(j);
* if(item2.getName()=="AddtlInf"){ error_msg+= item2.getTextTrim();
*
* } }
*
* }
*/
/* System.out.println(error_msg); */
}
}
} catch (DocumentException e) {
e.printStackTrace();
}
return error_msg;
}
/**
* <p>
* 解析汇丰银行日中文件2
* </p>
*
* @author keyouyuan16914
* @version 1.0.0
* @date 2020/01/18
*/
public static String parseDayMidFile(String path, String cdValue) {
cdValue="ITBD";
path = "C:\\Users\\User\\Desktop\\testfiledir\\down_day_mid_result\\testMid.xml";
SAXReader reader = new SAXReader();
Document document;
String error_msg = "";
try {
document = reader.read(new File(path));
Element root = document.getRootElement();
Element Body = root.element("BkToCstmrAcctRpt");
Element Rpt = Body.element("Rpt");
List<Element> Rpts = Rpt.elements();
System.out.println(Rpts.size());
for (int i = 0; i < Rpts.size(); i++) {
Element item = Rpts.get(i);
String amt = null;
if (item.getName() == "Bal") {
System.out.println(item.element("Tp").getName());
System.out.println(item.element("Tp").element("CdOrPrtry").getName());
System.out.println(item.element("Tp").element("CdOrPrtry").element("Cd").getName());
System.out.println(item.element("Tp").element("CdOrPrtry").element("Cd").getTextTrim());
String ss=item.element("Tp").element("CdOrPrtry").element("Cd").getTextTrim();
System.out.println("1111");
System.out.println(ss.toString());
if(ss.toString().equals(cdValue)) {
System.out.println("2222");
System.out.println(item.element("Amt").getTextTrim());
}
}
if (amt == "ACCP") {
return "SUCCESS";
} else {
// 此处需要进行判断
/*
* if(item.getName()=="StsRsnInf") { List<Element> StsRsnInfs=item.elements();
* for (int j=0; j<StsRsnInfs.size(); j++) { Element item2 = StsRsnInfs.get(j);
* if(item2.getName()=="AddtlInf"){ error_msg+= item2.getTextTrim();
*
* } }
*
* }
*/
/* System.out.println(error_msg); */
}
}
} catch (DocumentException e) {
e.printStackTrace();
}
return error_msg;
}
public static String xmlToString(String xmlFileName){
SAXReader saxReader=new SAXReader();
org.dom4j.Document document;
String xmlString="";
try {
document = saxReader.read(new File(xmlFileName));
xmlString=document.asXML();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
xmlString="";
}
//String xmlString = document.asXML();
return xmlString;
}
public static void main(String[] args) throws Exception {
System.out.println(xmlToString("C:\\Users\\User\\Desktop\\testfiledir\\down_confirm\\ACK1PSRV3.PC000018926.20201231113053992299.20210121114031002.XML"));
}
}
This diff is collapsed.
<?xml version="1.0" encoding="UTF-8"?>
<bm:model xmlns:bm="http://www.leaf-framework.org/schema/bm">
<bm:operations>
<bm:operation name="query">
<bm:query-sql><![CDATA[
SELECT
*
FROM
(SELECT
t1.bank_account_id,
t1.bank_account_code,
t3.bank_short_name,
t2.bank_branch_name,
t1.bank_account_name,
t1.bank_account_num,
t3.bank_code
FROM
csh_bank_account t1,
csh_bank_branch t2,
csh_bank t3
WHERE
t1.bank_branch_id = t2.bank_branch_id AND
t2.bank_id = t3.bank_id AND
t1.enabled_flag = 'Y' AND
t2.enabled_flag = 'Y' AND
t3.enabled_flag = 'Y'
) v #WHERE_CLAUSE#
]]></bm:query-sql>
</bm:operation>
</bm:operations>
<bm:fields>
<bm:field name="bank_account_id" databaseType="NUMBER" datatype="java.lang.Long"/>
<bm:field name="bank_account_code" databaseType="VARCHAR2" datatype="java.lang.String" displayWidth="100" forDisplay="true" prompt="账户代码"/>
<bm:field name="bank_short_name" databaseType="VARCHAR2" datatype="java.lang.String" displayWidth="100" forDisplay="true" forQuery="true" prompt="银行简称" queryWidth="100"/>
<bm:field name="bank_branch_name" databaseType="VARCHAR2" datatype="java.lang.String" displayWidth="100" forDisplay="true" forQuery="true" prompt="分行名称" queryWidth="100"/>
<bm:field name="bank_account_name" databaseType="VARCHAR2" datatype="java.lang.String" displayWidth="100" forDisplay="true" prompt="账户名"/>
<bm:field name="bank_account_num" databaseType="VARCHAR2" datatype="java.lang.String" displayWidth="100" forDisplay="true" prompt="银行账号"/>
</bm:fields>
<bm:query-fields>
<bm:query-field name="bank_short_name" queryExpression="v.bank_short_name like ${@bank_short_name}"/>
<bm:query-field name="bank_branch_name" queryExpression="v.bank_branch_name like ${@bank_branch_name}"/>
</bm:query-fields>
<bm:data-filters>
<bm:data-filter enforceOperations="query" expression="v.bank_code IN ('019')"/>
</bm:data-filters>
</bm:model>
<?xml version="1.0" encoding="UTF-8"?>
<bm:model xmlns:bm="http://www.leaf-framework.org/schema/bm">
<bm:operations>
<bm:operation name="delete">
<bm:update-sql><![CDATA[
delete from hl_hsbc_doc_temp t where t.session_id = ${/session/@session_id}
]]></bm:update-sql>
</bm:operation>
<bm:operation name="insert">
<bm:update-sql><![CDATA[
begin
hl_hsbc_interface_pkg.insert_doc_temp(
p_session_id=>${/session/@session_id},
p_payment_req_ln_id=>${@payment_req_ln_id},
p_payment_req_id=>${@payment_req_id},
p_tranamount =>${@unpaid_amount},
p_user_id=>${/session/@user_id},
p_button_id => ${/parameter/@button_id},
p_division => '70'
);
end;
]]></bm:update-sql>
</bm:operation>
<bm:operation name="update">
<bm:update-sql><![CDATA[
begin
hl_hsbc_interface_pkg.create_batch(p_session_id => ${/session/@session_id},
p_bank_account_id => ${@bank_account_id},
p_user_id => ${/session/@user_id});
end;
]]></bm:update-sql>
</bm:operation>
</bm:operations>
</bm:model>
<?xml version="1.0" encoding="UTF-8"?>
<bm:model xmlns:bm="http://www.leaf-framework.org/schema/bm" alias="t1">
<bm:operations>
<bm:operation name="query">
<bm:query-sql><![CDATA[
select decode(count(1), 0, 'N', 'Y') as flag
from (select u.user_id id
from sys_user u
where u.user_id = ${/session/@user_id}
and u.user_name in ('XUEJINGYAN','WUYING','KATO','HAND'))
]]></bm:query-sql>
</bm:operation>
</bm:operations>
</bm:model>
<?xml version="1.0" encoding="UTF-8"?>
<bm:model xmlns:bm="http://www.leaf-framework.org/schema/bm">
<bm:fields>
<bm:field name="reqsn" databaseType="VARCHAR2" datatype="java.lang.String"/>
</bm:fields>
<bm:operations>
<bm:operation name="delete">
<bm:update-sql><![CDATA[
delete from HL_HSBC_BATCH_TEMP t where t.session_id = ${/session/@session_id}
]]></bm:update-sql>
</bm:operation>
<bm:operation name="insert">
<bm:update-sql><![CDATA[
begin
hl_hsbc_interface_pkg.init_hl_hsbc_batch_temp(
p_session_id=> ${/session/@session_id},
p_reqsn=>${@reqsn},
p_user_id => '-1');
end;
]]></bm:update-sql>
</bm:operation>
<bm:operation name="execute">
<bm:update-sql><![CDATA[
begin
hl_hsbc_interface_pkg.init_hl_hsbc_batch_temp(
p_session_id=> ${/session/@session_id},
p_reqsn=>${@reqsn},
p_user_id => '-1');
end;
]]></bm:update-sql>
</bm:operation>
<bm:operation name="query">
<bm:query-sql><![CDATA[
select t2.reqsn
from hl_hsbc_paying_batch t2
where t2.status = 'SEND_MID'
order by 1
]]></bm:query-sql>
</bm:operation>
</bm:operations>
</bm:model>
<?xml version="1.0" encoding="UTF-8"?>
<bm:model xmlns:bm="http://www.leaf-framework.org/schema/bm">
<bm:fields>
<bm:field name="log_id" databaseType="NUMBER" datatype="java.lang.Long"/>
</bm:fields>
<bm:operations>
<bm:operation name="query">
<bm:query-sql><![CDATA[
select hl_hsbc_interface_log_s.nextval as log_id from dual
]]></bm:query-sql>
</bm:operation>
<bm:operation name="insert">
<bm:query-sql><![CDATA[
BEGIN
hl_hsbc_interface_pkg.insert_log(
p_log_id => ${@log_id},
p_interface_code=> ${@interface_code},
p_reqsn => ${@reqsn},
p_request => ${@request},
p_send_return_code => ${@send_return_code},
p_user_id => ${/session/@user_id}
);
END;
]]></bm:query-sql>
</bm:operation>
</bm:operations>
</bm:model>
<?xml version="1.0" encoding="UTF-8"?>
<bm:model xmlns:bm="http://www.leaf-framework.org/schema/bm">
<bm:operations>
<bm:operation name="query">
<bm:query-sql><![CDATA[
select hl_hsbc_interface_pkg.get_HSBC_content(${@reqsn}) xml_content from dual
]]></bm:query-sql>
</bm:operation>
</bm:operations>
<bm:fields>
<bm:field name="xml_content" databaseType="CLOB" datatype="java.lang.String"/>
</bm:fields>
</bm:model>
<?xml version="1.0" encoding="UTF-8"?>
<bm:model xmlns:bm="http://www.leaf-framework.org/schema/bm">
<bm:operations>
<bm:operation name="delete">
<bm:update-sql><![CDATA[
BEGIN
hl_hsbc_interface_pkg.close_paying_batch(
p_reqsn => ${@reqsn},
p_bank_item => ${@bank_item},
p_user_id => ${/session/@user_id}
);
END;
]]></bm:update-sql>
</bm:operation>
</bm:operations>
</bm:model>
<?xml version="1.0" encoding="UTF-8"?>
<bm:model xmlns:bm="http://www.leaf-framework.org/schema/bm">
<bm:operations>
<bm:operation name="execute">
<bm:update-sql><![CDATA[
begin
hl_hsbc_interface_pkg.change_to_manual_pay(p_reqsn=>${@reqsn},
p_bank_item=>${@bank_item},
p_user_id => ${/session/@user_id});
end;
]]></bm:update-sql>
</bm:operation>
</bm:operations>
</bm:model>
<?xml version="1.0" encoding="UTF-8"?>
<bm:model xmlns:bm="http://www.leaf-framework.org/schema/bm">
<bm:operations>
<bm:operation name="update">
<bm:update-sql><![CDATA[
begin
hl_hsbc_interface_pkg.update_upload_file(
p_reqsn=> ${@reqsn},
p_upload_msg=> ${@upload_msg},
p_user_id => '-1');
end;
]]></bm:update-sql>
</bm:operation>
</bm:operations>
<bm:fields>
<bm:field name="server_id" databaseType="VARCHAR2" datatype="java.lang.String"/>
<bm:field name="server_port" databaseType="VARCHAR2" datatype="java.lang.String"/>
<bm:field name="request_clob" databaseType="CLOB" datatype="java.lang.String"/>
</bm:fields>
</bm:model>
<?xml version="1.0" encoding="UTF-8"?>
<bm:model xmlns:bm="http://www.leaf-framework.org/schema/bm">
<bm:operations>
<bm:operation name="insert">
<bm:update-sql><![CDATA[
begin
hl_hsbc_interface_pkg.update_download_file(
p_file_name=> ${@file_name},
p_file_path=>${@file_path},
p_xml_str=> ${@xml_str},
p_user_id => '-1');
end;
]]></bm:update-sql>
</bm:operation>
</bm:operations>
<bm:fields>
<bm:field name="file_path" databaseType="VARCHAR2" datatype="java.lang.String"/>
<bm:field name="file_name" databaseType="VARCHAR2" datatype="java.lang.String"/>
<bm:field name="xml_str" databaseType="CLOB" datatype="java.lang.String"/>
</bm:fields>
</bm:model>
#sftp网址
URL=ecom-sftp.fgcn-pprd.hsbc.com
#sftp用户名
USER_NAME=PC000018926_19960
#sftp端口
PORT=10022
#sftp根路径
ROOT_PATH=\\
#sftp秘钥路径 在这里就正常路径,在svc 或者java 要双斜杠转义
KEY_PATH=F:\\jjhf\\hsbc_key\\hsbstestnew
#sftp待上传文件存放路径
UPLOAD_FILEDIR=F:\\jjhf\\upload\\
#sftp 加密方式 RSA秘钥 PASSWORD 密码
AUTH_CODE=RSA
#sftp 待下载文件存放路径
DOWN_FILEDIR=F:\\jjhf\\down_confirm\\
#sftp 日中对账单文件存放路径
DAY_MID_FILEDIR=F:\\jjhf\\down_day_mid_result\\
#sftp 汇丰银行账号
HSBC_BANK_CODE=715009700011
#sftp 区分汽车系统和建机系统,01:汽车系统;02:建机系统
SYSTEM_FLAG=02
PATH=C:\Users\User\Desktop\testfiledir\down_confirm\TWO.XML
var override_queryfields = [
{
name : 'approval_date_from',
queryexpression : "trunc(t1.approval_date) >= to_date(${@approval_date_from},'yyyy-mm-dd')"
},
{
name : 'approval_date_to',
queryexpression : "trunc(t1.approval_date) <= to_date(${@approval_date_to},'yyyy-mm-dd')"
}
];
override();
var override_queryfields = [
{
name : 'creationdate_from',
queryexpression : "trunc(t1.creationdate) >= to_date(${@creationdate_from},'yyyy-mm-dd')"
},
{
name : 'creationdate_to',
queryexpression : "trunc(t1.creationdate) <= to_date(${@creationdate_to},'yyyy-mm-dd')"
}
];
var add_datafilters = [
{
name : 'init_filter',
expression : "t1.status in ('NEW','ERROR','FINISHED','SEND_MID','CONFIRM1_ERROR','CONFIRM2_FULL_ERROR')"
}
];
add_datafilter();
override();
var override_queryfields = [
{
name : 'send_date',
queryexpression : "trunc(t1.send_date) = to_date(${@send_date},'yyyy-mm-dd')"
},
{
name : 'hsbc_status',
queryexpression : "t1.status = ${@hsbc_status}"
}
];
var add_datafilters = [
{
name : 'init_filter',
expression : "t1.status in ('BANK_RECEIVED','BANK_HALF_BACKED','BANK_BACKED','FINISHED','CONFIRM1','CONFIRM1_ERROR','CONFIRM2','CONFIRM2_FULL_ERROR','CONFIRM2_PART_ERROR','SENDING','SEND_MID','CLOSED')"
}
];
add_datafilter();
override();
var override_queryfields = [
{
name : 'rptdate',
queryexpression : "trunc(t1.rptdate) >= to_date(${@rptdate},'yyyy-mm-dd')"
}
];
override();
......@@ -321,5 +321,10 @@ var enableLayoutConfig = {
'modules/rent/rent200/con_collection_income.lview':true,
'modules/cont/CON316/contract_cost_query_entrance.lview':true,
'modules/lon/LON140/loan_fee_create_entrance.lview':true,
'modules/form/FORM_LON120H/loan_contract_query.lview':true
'modules/form/FORM_LON120H/loan_contract_query.lview':true,
'modules/hsbc/HSBC100/hsbc_paying_batch_create.lview':true,
'modules/hsbc/HSBC110/hsbc_paying_batch_modify.lview':true,
'modules/hsbc/HSBC110/hsbc_paying_batch_detail.lview':true,
'modules/hsbc/HSBC120/hsbc_paying_batch_query.lview':true,
'modules/hsbc/HSBC130/pingan_account_hisbalance_query.lview':true
};
\ No newline at end of file
......@@ -48,6 +48,8 @@
}
//对是否为同一个厂商进行检查
var vender_name = record.get('vender_name_n');
//对铁甲和非铁甲的校验
var division = record.get('division');
var vender_flag = true;
var leaseback_count = 0, lease_count = 0;
......@@ -59,6 +61,11 @@
$L.showErrorMessage("提示", '请选择厂商相同的现金流信息!');
return;
}
//对铁甲和非铁甲的校验 add 18943
if (a[i].get('division') != division) {
$L.showErrorMessage("提示", '铁甲业务合同和非铁甲业务合同不可同一批次申请,请确认!');
return;
}
//暂时去掉
// if(a[i].get('billing_status_n')!='已开票' ||a[i].get('invoice_status_n')!='已确认'){
// $L.showErrorMessage("提示",'请选择开票状态为已开票,发票状态为已确认的现金流!');
......@@ -336,6 +343,7 @@
selectable="true">
<a:field name="cf_item"/>
<a:field name="first_contract_day"/>
<a:field name="division"/>
<a:events>
<a:event name="query" handler="aut_authority_list_validate_query"/>
</a:events>
......
<?xml version="1.0" encoding="UTF-8"?>
<a:screen xmlns:a="http://www.leaf-framework.org/application" trace="true">
<a:view>
<a:link id="hsbc_paying_batch_create_link_id" url="${/request/@context_path}/modules/hsbc/HSBC100/hsbc_paying_batch_create.lsc"/>
<script><![CDATA[
function create_paying_batch() {
Leaf.Masker.mask(Ext.getBody(), '付款单生成中...');
var account_ds = $('csh_bank_account');
var bank_account_id = account_ds.getAt(0).get('bank_account_id');
if (Ext.isEmpty(bank_account_id)) {
Leaf.showMessage('提示', '请先选择账户代码!');
Leaf.Masker.unmask(Ext.getBody());
} else {
var req_ln_ds = $('${/parameter/@ds_id}');
var button_id = '${/parameter/@button_id}';
var records = req_ln_ds.getSelected();
var param = {};
var saveData = [];
for (var i = 0;i < records.length;i++) {
var rec;
rec = records[i];
rec.set('_status', 'insert');
saveData.push(rec.data);
}
param['details'] = saveData;
param['bank_account_id'] = bank_account_id;
param['button_id'] = button_id;
Leaf.request({
url: $('hsbc_paying_batch_create_link_id').getUrl(),
para: param,
success: function() {
Leaf.SideBar.show({
msg: '付款单生成成功!',
duration: 2000
});
Leaf.Masker.unmask(Ext.getBody());
$('${/parameter/@winId}').close();
req_ln_ds.query();
},
failure: function() {
Leaf.Masker.unmask(Ext.getBody());
},
error: function() {
Leaf.Masker.unmask(Ext.getBody());
},
scope: this
});
}
}
]]></script>
<a:dataSets>
<a:dataSet id="csh_bank_account" autoCreate="true">
<a:fields>
<a:field name="bank_account_id" readOnly="true"/>
<a:field name="bank_account_code" lovGridHeight="300" lovHeight="450" lovService="hsbc.HSBC100.csh_bank_account" lovWidth="800" required="true" title="支付账号选择">
<a:mapping>
<a:map from="bank_account_id" to="bank_account_id"/>
<a:map from="bank_account_code" to="bank_account_code"/>
<a:map from="bank_short_name" to="bank_short_name"/>
<a:map from="bank_branch_name" to="bank_branch_name"/>
<a:map from="bank_account_name" to="bank_account_name"/>
<a:map from="bank_account_num" to="bank_account_num"/>
</a:mapping>
</a:field>
<a:field name="bank_short_name" readOnly="true"/>
<a:field name="bank_branch_name" readOnly="true"/>
<a:field name="bank_account_name" readOnly="true"/>
<a:field name="bank_account_num" readOnly="true"/>
</a:fields>
</a:dataSet>
</a:dataSets>
<a:screenBody>
<a:screenTopToolbar>
<a:gridButton click="create_paying_batch" text="付款单生成"/>
</a:screenTopToolbar>
<a:form column="2" title=" ">
<a:lov name="bank_account_code" bindTarget="csh_bank_account" prompt="账户代码"/>
<a:textField name="bank_short_name" bindTarget="csh_bank_account" prompt="银行简称"/>
<a:textField name="bank_branch_name" bindTarget="csh_bank_account" prompt="分行名称"/>
<a:textField name="bank_account_name" bindTarget="csh_bank_account" prompt="账户名"/>
<a:textField name="bank_account_num" bindTarget="csh_bank_account" prompt="银行账号"/>
</a:form>
</a:screenBody>
</a:view>
</a:screen>
<?xml version="1.0" encoding="UTF-8"?>
<a:service xmlns:a="http://www.leaf-framework.org/application" xmlns:p="uncertain.proc" trace="true">
<a:init-procedure>
<a:model-delete model="hsbc.HSBC100.hsbc_paying_batch_create"/>
<batch-apply sourcePath="/parameter/details">
<a:model-insert model="hsbc.HSBC100.hsbc_paying_batch_create"/>
</batch-apply>
<a:model-update model="hsbc.HSBC100.hsbc_paying_batch_create"/>
</a:init-procedure>
<a:service-output output="/parameter"/>
</a:service>
<?xml version="1.0" encoding="UTF-8"?>
<!--
$Author: Hongquan.Dai 代宏全
$Date: 2018-1-22 上午10:36:25
$Revision: 1.0
$Purpose:
-->
<a:screen xmlns:a="http://www.leaf-framework.org/application" customizationEnabled="true" dynamiccreateenabled="true">
<a:init-procedure/>
<a:view>
<a:link id="con_contract_get_layout_code_link_id" model="cont.CON500.con_contract_get_layout_code" modelaction="update"/>
<a:link id="pageLink_choose_acount" url="${/request/@context_path}/modules/hsbc/HSBC100/csh_bank_account_choose.lview"/>
<script type="text/javascript"><![CDATA[
//创建代付单
window['${/parameter/@layout_code}_user_button1_layout_dynamic_click'] = function() {
var req_ln_ds_id = get_dsid_by_basetable(window['${/parameter/@layout_code}_layoutDataSetList'], 'csh_payment_req_ln');
var req_ln_ds = $(req_ln_ds_id);
var req_ln_records = req_ln_ds.getSelected();
new Leaf.Window({
id: 'choose_acount_window',
url: $('pageLink_choose_acount').getUrl(),
params: {
winId: 'choose_acount_window',
ds_id: req_ln_ds_id,
button_id: 'create_with_sbo'
},
title: '支付账号选择',
height: 260,
width: 680
});
};
//创建强制付款单生成
window['${/parameter/@layout_code}_user_button2_layout_dynamic_click'] = function() {
var req_ln_ds_id = get_dsid_by_basetable(window['${/parameter/@layout_code}_layoutDataSetList'], 'csh_payment_req_ln');
var req_ln_ds = $(req_ln_ds_id);
var req_ln_records = req_ln_ds.getSelected();
new Leaf.Window({
id: 'choose_acount_window',
url: $('pageLink_choose_acount').getUrl(),
params: {
winId: 'choose_acount_window',
ds_id: req_ln_ds_id,
button_id: 'create_without_sbo'
},
title: '支付账号选择',
height: 260,
width: 680
});
};
]]></script>
<a:screen-include screen="modules/cont/CON500/con_contract_get_layout_code.lview"/>
</a:view>
</a:screen>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!--
$Author: Hongquan.Dai 代宏全
$Date: 2018-1-22 上午10:36:25
$Revision: 1.0
$Purpose:
-->
<a:screen xmlns:a="http://www.leaf-framework.org/application" customizationEnabled="true" dynamiccreateenabled="true">
<a:init-procedure/>
<a:view>
<a:link id="prj_project_get_layout_code_link_id" model="cont.CON500.con_contract_get_layout_code" modelaction="update"/>
<a:link id="prj_project_query_link" url="${/request/@context_path}/modules/prj/PRJ501DF/prj_project_maintain.screen"/>
<a:link id="${/parameter/@layout_code}_df_csh_payment_apply_link" url="${/request/@context_path}/modules/csh/CSH770/df_csh_payment_apply_wfl.screen"/>
<script><![CDATA[
function open_project_win(ds_id, record_id) {
var record = $(ds_id).findById(record_id);
var param = {};
param['project_id'] = record.get('contract_id');
param['lease_channel'] = '01';
param['bp_class'] = 'ORG';
param['function_code'] = 'PRJ501D_DDF';
param['function_usage'] = 'QUERY';
param['maintain_type'] = 'QUERY';
param['winid'] = 'prj_porject_query_win_id';
param['url_title'] = '${l:HLS.PROJECT_MAITAIN_DF}';
hls_doc_get_layout_code('prj_project_get_layout_code_link_id', param, 'prj_project_query_link', ds_id,'${/parameter/@layout_code}');
}
window['${/parameter/@layout_code}_payment_req_number_win'] = function(payment_req_id,ds_id) {
var param = {};
param['document_id'] = payment_req_id;
param['payment_req_id'] = payment_req_id;
param['function_code'] = 'CSH770';
param['maintain_type'] = 'QUERY';
param['url_title'] = '付款明细';
param['winid'] = 'payment_req_number_link';
hls_doc_get_layout_code('prj_project_get_layout_code_link_id', param, '${/parameter/@layout_code}_df_csh_payment_apply_link', ds_id,'${/parameter/@layout_code}');
};
window['${/parameter/@layout_code}_dynamic_link_renderer'] = function(value, record, name, config_record) {
if (name == 'contract_number' && value && '${/parameter/@lease_channel}' == '01') {
return '<a href="javascript:open_project_win(\'' + record.ds.id + '\',\'' + record.id + '\')">' + value + '</a>';
}
if (name == 'payment_req_number' && value && '${/parameter/@lease_channel}' == '01') {
link_function = '${/parameter/@layout_code}_payment_req_number_win';
return '<a href="javascript:window[\'' + link_function + '\'](\'' + record.get('payment_req_id') + '\',\'' + record.ds.id + '\',\'' + '\');">' + value + '</a>';
}
if (name == 'payment_req_number' && value && '${/parameter/@lease_channel}' == '01') {
return value;
}
return value;
};
]]></script>
<a:screen-include screen="modules/cont/CON500/con_contract_get_layout_code.lview"/>
<script><![CDATA[/*
Aurora.onReady(init);
function init() {
var ds_id = get_dsid_by_basetable(window['${/parameter/@layout_code}_layoutDataSetList'], 'hl_hsbc_paying_batch');
if(ds_id){
$(ds_id).setQueryParameter('bank_item', '${/parameter/@bank_item}');
$(ds_id).query();
}
var doc_ds_id = get_dsid_by_basetable(window['${/parameter/@layout_code}_layoutDataSetList'], 'hl_hsbc_paying_doc');
if(doc_ds_id){
$(doc_ds_id).setQueryParameter('bank_item', '${/parameter/@bank_item}');
$(doc_ds_id).query();
}
}*/
]]></script>
</a:view>
</a:screen>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!--
$Author: Hongquan.Dai 代宏全
$Date: 2018-1-22 上午10:36:25
$Revision: 1.0
$Purpose:
-->
<a:screen xmlns:a="http://www.leaf-framework.org/application" customizationEnabled="true" dynamiccreateenabled="true">
<a:init-procedure>
<a:model-query model="hsbc.HSBC110.get_limited_user" rootPath="limited_user_path"/>
</a:init-procedure>
<a:view>
<a:link id="${/parameter/@layout_code}_con_contract_get_layout_code_link_id" model="cont.CON500.con_contract_get_layout_code" modelaction="update"/>
<a:link id="batch_hsbc_send_link" url="${/request/@context_path}/modules/hsbc/HSBC110/hsbc_paying_batch_send.lsc"/>
<a:link id="batch_detail_link" url="${/request/@context_path}/modules/hsbc/HSBC110/hsbc_paying_batch_detail.lview"/>
<a:link id="manual_modify_link" model="hsbc.HSBC110.hsbc_paying_manual_modify" modelaction="execute"/>
<a:link id="batch_cancel_link" model="hsbc.HSBC110.hsbc_paying_batch_cancel" modelaction="delete"/>
<script type="text/javascript"><![CDATA[
function open_batch_win(ds_id, record_id) {
var record = $(ds_id).findById(record_id);
var param = record.data;
param['function_code'] = 'HSBC110D';
param['maintain_type'] = 'QUERY';
param['url_title'] = '付款单明细';
hls_doc_get_layout_code('${/parameter/@layout_code}_con_contract_get_layout_code_link_id', param, 'batch_detail_link', ds_id);
}
window['${/parameter/@layout_code}_dynamic_link_renderer'] = function(value, record, name, config_record) {
if (name == 'reqsn' && value) {
return '<a href="javascript:open_batch_win(\'' + record.ds.id + '\',\'' + record.id + '\')">' + value + '</a>';
}
return value;
};
//代付单发送
window['${/parameter/@layout_code}_user_button1_layout_dynamic_click'] = function() {
var ds_id = get_dsid_by_tabcode_basetable(window['${/parameter/@layout_code}_layoutDataSetList'], 'G_RESULT', 'hl_hsbc_paying_batch');
var batch_ds = $(ds_id);
var records = batch_ds.getSelected();
if (records.length == 0) {
Leaf.showMessage('${l:PROMPT}', '请选择至少一条数据!');
return;
}
var param = {};
var saveData = [];
var length = 0;
var send_url;
var bank_note='汇丰银行';
for (var i = 0;i < records.length;i++) {
var rec;
rec = records[i];
rec.set('_status', 'insert');
saveData.push(rec.data);
}
length = records.length;
param['details'] = saveData;
send_url=$('batch_hsbc_send_link').getUrl();
Leaf.showConfirm('${l:HLS.PROMPT}', '共选中<font color="red">' + length + '</font>条付款单,确认发送到<font color="red">'+bank_note+'</font>?', function() {
window['${/parameter/@layout_code}_lock_layout_dynamic_window']();
Leaf.request({
url: send_url,
para: param,
success: function(res) {
window['${/parameter/@layout_code}_unlock_layout_dynamic_window']();
batch_ds.query();
},
failure: function(res) {
window['${/parameter/@layout_code}_unlock_layout_dynamic_window']();
batch_ds.query();
},
error: function() {
window['${/parameter/@layout_code}_unlock_layout_dynamic_window']();
batch_ds.query();
},
scope: this
});
});
};
//人工支付 --add by 24976
window['${/parameter/@layout_code}_user_button2_layout_dynamic_click'] = function() {
var ds_id = get_dsid_by_tabcode_basetable(window['${/parameter/@layout_code}_layoutDataSetList'], 'G_RESULT', 'hl_hsbc_paying_batch');
var batch_ds = $(ds_id);
var records = batch_ds.getSelected();
var lease_channel;
var reqsn;
var batch_id;
var bank_item;
if (records.length != 1) {
Leaf.showMessage('${l:PROMPT}', '请选择一条数据!');
return;
}
var win = new Leaf.showConfirm('${l:HLS.PROMPT}', '使用人工支付将不能再使用银企直连,确认进行人工支付?', function() {
window['${/parameter/@layout_code}_lock_layout_dynamic_window']();
Leaf.request({
url: $('manual_modify_link').getUrl(),
para: {
batch_id : records[0].get('batch_id'),
reqsn : records[0].get('reqsn'),
bank_item : records[0].get('bank_item')
},
success: function(res) {
window['${/parameter/@layout_code}_unlock_layout_dynamic_window']();
batch_ds.query();
},
failure: function(res) {
window['${/parameter/@layout_code}_unlock_layout_dynamic_window']();
},
error: function() {
window['${/parameter/@layout_code}_unlock_layout_dynamic_window']();
},
scope: this
});
});
};
//付款单取消
window['${/parameter/@layout_code}_user_button3_layout_dynamic_click'] = function() {
var ds_id = get_dsid_by_tabcode_basetable(window['${/parameter/@layout_code}_layoutDataSetList'], 'G_RESULT', 'hl_hsbc_paying_batch');
var batch_ds = $(ds_id);
var records = batch_ds.getSelected();
if (records.length != 1 ) {
Leaf.showMessage('${l:PROMPT}', '请选择一条数据!');
return;
}
Leaf.showConfirm('${l:HLS.PROMPT}', '确认取消?', function() {
window['${/parameter/@layout_code}_lock_layout_dynamic_window']();
Leaf.request({
url: $('batch_cancel_link').getUrl(),
para: {
batch_id : records[0].get('batch_id'),
reqsn : records[0].get('reqsn'),
bank_item : records[0].get('bank_item')
},
success: function(res) {
window['${/parameter/@layout_code}_unlock_layout_dynamic_window']();
batch_ds.query();
},
failure: function(res) {
window['${/parameter/@layout_code}_unlock_layout_dynamic_window']();
},
error: function() {
window['${/parameter/@layout_code}_unlock_layout_dynamic_window']();
},
scope: this
});
});
};
Leaf.onReady(function() {
if ('${/model/limited_user_path/record/@flag}'=='N') {
$('${/parameter/@layout_code}_user_button1').hide();
$('${/parameter/@layout_code}_user_button2').hide();
$('${/parameter/@layout_code}_user_button3').hide();
}
});
]]></script>
<a:screen-include screen="modules/cont/CON500/con_contract_get_layout_code.lview"/>
</a:view>
</a:screen>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<a:service xmlns:p="uncertain.proc" xmlns:a="http://www.leaf-framework.org/application" xmlns:s="leaf.plugin.script" trace="true">
<a:init-procedure>
<a:model-delete model="hsbc.HSBC110.hsbc_batch_temp"/>
<batch-apply sourcePath="/parameter/details">
<a:model-insert model="hsbc.HSBC110.hsbc_batch_temp"/>
</batch-apply>
<s:server-script><![CDATA[
function main() {
$bm('sch.SCH111.sch_concurrent_job_submit').insert({
task_code:'HSBC_BATCH_SEND',
description:'汇丰银行批量发送job'
});
}
main();
]]></s:server-script>
<p:echo/>
</a:init-procedure>
<a:service-output output="/parameter"/>
</a:service>
<?xml version="1.0" encoding="UTF-8"?>
<!--
$Author: wangwei5743
$Date: 2017-8-17 上午10:38:31
$Revision: 1.0
$Purpose: 农行代扣接口生成txt
-->
<a:service xmlns:p="uncertain.proc" xmlns:a="http://www.leaf-framework.org/application" xmlns:s="leaf.plugin.script" trace="true">
<a:init-procedure>
<s:server-script><![CDATA[
importPackage(Packages.java.lang);
importPackage(Packages.java.io);
importPackage(java.util.zip);
importPackage(java.io); /*可以传入参数*/
importPackage(Packages.com.hand.hsbc);
var UPLOAD_FILEDIR = AuthTypeMode.getProperties("UPLOAD_FILEDIR");
var date=new Date();
var year=date.getFullYear();
var month=date.getMonth()+1;
UPLOAD_FILEDIR = UPLOAD_FILEDIR+"\\"+year+"\\"+month+"\\";
var tranfer_dir= new File(String(UPLOAD_FILEDIR));
if(!tranfer_dir.exists()){
//如果文件夹不存在,创建年月文件夹
tranfer_dir.mkdirs();//创建文件夹
}
function batch_send(reqsn) {
var fileName = reqsn;
//生成文件路径,文件
var FilePath='';
var FilePath = UPLOAD_FILEDIR + fileName + '.XML';
//-----------------------------写文件----------------------------
try {
var outSTr = new FileOutputStream(new File(FilePath));
var Buff = new BufferedOutputStream(outSTr);
} catch (e) {
raise_app_error(e.message);
}
//汇丰代扣信息
var xml_content='';
var xml_content_bm = $bm('hsbc.HSBC110.hsbc_get_xml_content');
var xml_content_query = xml_content_bm.queryAsMap({
reqsn: reqsn
});
var xml_content_lists = xml_content_query.getChildren();
xml_content=xml_content_lists[0].xml_content;
if(!xml_content){
raise_app_error('文件生成错误,请检查!');
}
try {
var write = new java.lang.String(xml_content).replaceAll("&quot;", "\"");
Buff.write(new java.lang.String(write).getBytes("UTF-8"));
Buff.flush();
Buff.close();
} catch (e) {
raise_app_error(e.message);
} finally {
try {
Buff.close();
outSTr.close();
} catch (e) {
raise_app_error(e.message);
}
}
println('paraconfig.properties');
//以下参数请查看class目录下paraconfig.properties文件进行配置
var URL = AuthTypeMode.getProperties("URL");
var USER_NAME = AuthTypeMode.getProperties("USER_NAME");
var PORT = AuthTypeMode.getProperties("PORT");
var ROOT_PATH = AuthTypeMode.getProperties("ROOT_PATH");
var KEY_PATH = AuthTypeMode.getProperties("KEY_PATH");
var AUTH_CODE = AuthTypeMode.getProperties("AUTH_CODE");
var DOWN_FILEDIR = AuthTypeMode.getProperties("DOWN_FILEDIR");
var sftpTool = new SftpTool(URL,USER_NAME,PORT);
var send_code = sftpTool.upload(ROOT_PATH, FilePath, new AuthTypeMode(AUTH_CODE,KEY_PATH));
//插入日志表
//生成log_id
var log_bm = new ModelService('hsbc.HSBC110.hsbc_get_log_id');
var res = log_bm.queryAsMap();
var arr = res.getChildren();
var log_id = arr[0].log_id;
log_bm.insert({
log_id: log_id,
interface_code:'HSBC_SEND',
reqsn:reqsn,
request:xml_content,
send_return_code:send_code
});
var send_bm = $bm('hsbc.HSBC110.upload_interface_process');
if (send_code=='UPLOAD_SUCCESS'){
//解析XML文件2个,先修改下载状态。 建议还是解析XML和修改下载状态独立吧
send_bm.update({
reqsn: reqsn,
errMsg:''
});
}else{
//上传失败
send_bm.update({
reqsn: reqsn,
errMsg:send_code
});
}
}
function main() {
println('main');
var bm = new ModelService('hsbc.HSBC110.hsbc_batch_temp');
var res = bm.queryAsMap();
var arr = res.getChildren();
if (arr.length) {
for (var i = 0;i < arr.length;i++) {
batch_send(arr[i].reqsn);
}
}
}
main();
]]></s:server-script>
<p:echo/>
</a:init-procedure>
<a:service-output output="/parameter"/>
</a:service>
<?xml version="1.0" encoding="UTF-8"?>
<!--
$Author: wangwei5743
$Date: 2017-8-17 上午10:38:31
$Revision: 1.0
$Purpose: 农行代扣接口生成txt
-->
<a:service xmlns:p="uncertain.proc" xmlns:a="http://www.leaf-framework.org/application" xmlns:s="leaf.plugin.script" trace="true">
<a:init-procedure>
<s:server-script><![CDATA[
importPackage(Packages.java.lang);
importPackage(Packages.java.io);
importPackage(java.util.zip);
importPackage(java.io); /*可以传入参数*/
importPackage(Packages.com.hand.hsbc);
function main() {
//以下参数请查看class目录下paraconfig.properties文件进行配置
var URL = AuthTypeMode.getProperties("URL");
var USER_NAME = AuthTypeMode.getProperties("USER_NAME");
var PORT = AuthTypeMode.getProperties("PORT");
var ROOT_PATH = AuthTypeMode.getProperties("ROOT_PATH");
var KEY_PATH = AuthTypeMode.getProperties("KEY_PATH");
var AUTH_CODE = AuthTypeMode.getProperties("AUTH_CODE");
var DOWN_FILEDIR = AuthTypeMode.getProperties("DOWN_FILEDIR");
var HSBC_BANK_CODE = AuthTypeMode.getProperties("HSBC_BANK_CODE");
var SYSTEM_FLAG = AuthTypeMode.getProperties("SYSTEM_FLAG");
var date=new Date();
var year=date.getFullYear();
var month=date.getMonth()+1;
DOWN_FILEDIR = DOWN_FILEDIR+year+"\\"+month+"\\";
var tranfer_dir= new File(String(DOWN_FILEDIR));
if(!tranfer_dir.exists()){
//如果文件夹不存在,创建年月文件夹
tranfer_dir.mkdirs();//创建文件夹
}
var sftpTool = new SftpTool(URL,USER_NAME,PORT);
var down_code= sftpTool.downloaddiff(ROOT_PATH,SYSTEM_FLAG,HSBC_BANK_CODE, DOWN_FILEDIR, new AuthTypeMode(AUTH_CODE,KEY_PATH));
//生成log_id
var log_bm = new ModelService('hsbc.HSBC110.hsbc_get_log_id');
var res = log_bm.queryAsMap();
var arr = res.getChildren();
var log_id = arr[0].log_id;
log_bm.insert({
log_id: log_id,
interface_code:'HSBC_DOWN',
reqsn:'',
request:down_code,
send_return_code:'DOWN_FINISHED'
});
//var down_code='ACK1PSRV3.PC000018926.20220118153157978927.20220118073230005.XML;ACK2PSRV3.PC000018926.20220118153157978927.20220118073238006.XML';
try {
if (down_code != null && down_code.length != 0) {
//解析XML文件2个,先修改下载状态。 建议还是解析XML和修改下载状态独立吧
var bm = $bm('hsbc.HSBC120.update_down_file_status');
var fileNames = down_code.split(';');
for (var i = 0;i < fileNames.length;i++) {
var file_path=DOWN_FILEDIR+fileNames[i];
var xml_str=SaxReaderXml.xmlToString(file_path);
if (xml_str == null || xml_str.length == 0) {
bm.insert({
file_name:fileNames[i],
file_path:file_path.toString(),
xml_str:xml_str
});
}
}
}
} catch (e) {
raise_app_error(e);
println(e);
}
println('LSC执行完成');
}
main();
]]></s:server-script>
<p:echo/>
</a:init-procedure>
<a:service-output output="/parameter"/>
</a:service>
<?xml version="1.0" encoding="UTF-8"?>
<!--
$Author: Hongquan.Dai 代宏全
$Date: 2018-1-22 上午10:36:25
$Revision: 1.0
$Purpose:
-->
<a:screen xmlns:a="http://www.leaf-framework.org/application" customizationEnabled="true" dynamiccreateenabled="true">
<a:init-procedure/>
<a:view>
<a:link id="con_contract_get_layout_code_link_id" model="cont.CON500.con_contract_get_layout_code" modelaction="update"/>
<a:link id="batch_detail_link" url="${/request/@context_path}/modules/hsbc/HSBC110/hsbc_paying_batch_detail.lview"/>
<script type="text/javascript"><![CDATA[
function open_batch_win(ds_id, record_id) {
var record = $(ds_id).findById(record_id);
var param = record.data;
param['function_code'] = 'HSBC110D';
param['maintain_type'] = 'QUERY';
param['url_title'] = '付款单明细';
hls_doc_get_layout_code('con_contract_get_layout_code_link_id', param, 'batch_detail_link', null,ds_id);
}
window['${/parameter/@layout_code}_dynamic_link_renderer'] = function(value, record, name, config_record) {
if (name == 'reqsn' && value) {
return '<a href="javascript:open_batch_win(\'' + record.ds.id + '\',\'' + record.id + '\')">' + value + '</a>';
}
return value;
};
]]></script>
<a:screen-include screen="modules/cont/CON500/con_contract_get_layout_code.lview"/>
</a:view>
</a:screen>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!--
$Author: Hongquan.Dai 代宏全
$Date: 2018-1-22 上午10:36:25
$Revision: 1.0
$Purpose:
-->
<a:screen xmlns:a="http://www.leaf-framework.org/application" customizationEnabled="true" dynamiccreateenabled="true">
<a:init-procedure/>
<a:view>
<a:link id="con_contract_get_layout_code_link_id" model="cont.CON500.con_contract_get_layout_code" modelaction="update"/>
<script type="text/javascript"><![CDATA[
]]></script>
<a:screen-include screen="modules/cont/CON500/con_contract_get_layout_code.lview"/>
</a:view>
</a:screen>
\ No newline at end of file
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