Merge remote-tracking branch 'origin/main'
This commit is contained in:
commit
f705532ef2
|
@ -57,13 +57,11 @@ import nc.vo.pub.BusinessException;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public class ErpSaleOrderToBIPBackgroupWorkPlugin implements IBackgroundWorkPlugin {
|
public class NCCToBIPBackgroupWorkPlugin implements IBackgroundWorkPlugin {
|
||||||
|
|
||||||
|
|
||||||
private HYSuperDMO superDMO = null;
|
private HYSuperDMO superDMO = null;
|
||||||
private String baseUrl="https://www.tkkfbip.com";
|
private String baseUrl="https://www.tkkfbip.com";
|
||||||
|
|
||||||
|
|
||||||
public HYSuperDMO getSuperDMO() {
|
public HYSuperDMO getSuperDMO() {
|
||||||
|
|
||||||
if(superDMO == null) {
|
if(superDMO == null) {
|
||||||
|
@ -74,7 +72,7 @@ public class ErpSaleOrderToBIPBackgroupWorkPlugin implements IBackgroundWorkPlug
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 检查bip参数是否完整
|
* 检查bip参数是否完整
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
private Map<String,String> checkBipParam(){
|
private Map<String,String> checkBipParam(){
|
||||||
|
@ -105,9 +103,7 @@ public class ErpSaleOrderToBIPBackgroupWorkPlugin implements IBackgroundWorkPlug
|
||||||
public PreAlertObject executeTask(BgWorkingContext arg0) throws BusinessException {
|
public PreAlertObject executeTask(BgWorkingContext arg0) throws BusinessException {
|
||||||
// TODO Auto-generated method stub
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
Date date = new Date();
|
|
||||||
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
||||||
String dateTime = dateFormat.format(date);
|
|
||||||
|
|
||||||
Map<String,String> bipParamMap= checkBipParam();
|
Map<String,String> bipParamMap= checkBipParam();
|
||||||
if(bipParamMap.isEmpty()) {
|
if(bipParamMap.isEmpty()) {
|
||||||
|
@ -125,103 +121,306 @@ public class ErpSaleOrderToBIPBackgroupWorkPlugin implements IBackgroundWorkPlug
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
String invoiceReceiveUrl = bipParamMap.get("contractSaleOrder");//开票申请单回传
|
String dests = bipParamMap.get("dests");//上次执行完成时间
|
||||||
if(StringUtils.isEmpty(invoiceReceiveUrl)) {
|
// 获取上次执行完成后的客户账户信息
|
||||||
return null;
|
String sel_sql="select distinct pk_cust from bd_custbank where accclass=1 ";
|
||||||
}
|
|
||||||
|
|
||||||
|
if(usercustcode!="") {
|
||||||
Gson gson = new Gson();
|
sel_sql=sel_sql+" and pk_cust in ( select pk_customer from bd_customer where code='"+usercustcode+"')";
|
||||||
|
}else {
|
||||||
|
if(dests!="") {
|
||||||
//获取未推送合同销售订单更新的销售发票信息;
|
sel_sql=sel_sql+" and ts>'"+dests+"'";
|
||||||
String sql=" select so_saleinvoice_b.cfirstbid from so_saleinvoice,so_saleinvoice_b where so_saleinvoice.csaleinvoiceid=so_saleinvoice_b.csaleinvoiceid and so_saleinvoice.fstatusflag=2 and nvl(so_saleinvoice_b.vbdef10,'N') in ('~','N') and and nvl(so_saleinvoice.vdef13,'~') not in ('~') ";
|
// sel_sql=sel_sql+" and ts>'2020-12-31 11:25:14' and ts <'2021-01-31 11:25:14' ";
|
||||||
|
// sel_sql=sel_sql+" and ts>'2021-02-28 09:25:07' and ts <'2021-03-20 09:25:07' ";
|
||||||
List<Map<String,String>> l_pk = (List<Map<String, String>>)new BaseDAO().executeQuery(sql.toString(),new MapListProcessor());
|
|
||||||
if(l_pk.isEmpty()) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (Map<String, String> map : l_pk) {
|
|
||||||
|
|
||||||
|
|
||||||
StringBuffer sb = new StringBuffer();
|
|
||||||
sb.append(" select so_saleinvoice_b.csaleinvoicebid,so_saleorder.vdef9,so_saleorder_b.vbdef11,so_saleorder_exe.ntotalarmny as totalaccrued ,so_saleorder_exe.ntotalinvoicenum as billqty ");
|
|
||||||
sb.append(" from so_saleorder_exe,so_saleinvoice_b,so_saleinvoice,so_saleorder_b,so_saleorder ");
|
|
||||||
sb.append(" where so_saleorder_exe.csaleorderbid=so_saleinvoice_b.csrcbid ");
|
|
||||||
sb.append(" and so_saleinvoice.csaleinvoiceid=so_saleinvoice_b.csaleinvoiceid and so_saleinvoice.fstatusflag=2 ");
|
|
||||||
sb.append(" and so_saleorder_exe.csaleorderbid=so_saleorder_b.csaleorderbid ");
|
|
||||||
sb.append(" and so_saleorder.csaleorderid=so_saleorder_b.csaleorderid ");
|
|
||||||
sb.append(" and so_saleorder_exe.dr=0 and so_saleorder.dr=0 and so_saleorder_b.dr=0 ");
|
|
||||||
sb.append(" and nvl(so_saleorder.vdef9,'~') not in ('~') ");
|
|
||||||
sb.append(" and so_saleorder_exe.csaleorderbid='").append(map.get("cfirstbid")).append("'");
|
|
||||||
List<Map<String,String>> ll_saleorder = (List<Map<String, String>>)new BaseDAO().executeQuery(sb.toString(),new MapListProcessor());
|
|
||||||
|
|
||||||
if(ll_saleorder.isEmpty()) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
try {
|
|
||||||
String accessToken=getAccessToken(baseUrl,bipParamMap);
|
|
||||||
Map<String,String> tokenParam = new HashMap<>();
|
|
||||||
tokenParam.put("access_token", accessToken);
|
|
||||||
Map<String, String> headers = new HashMap<String, String>();
|
|
||||||
headers.put("Content-Type", "application/json");
|
|
||||||
String custUpdateUrl=baseUrl+invoiceReceiveUrl;
|
|
||||||
if(accessToken!="") {
|
|
||||||
JSONObject js_apct_detail =new JSONObject();
|
|
||||||
JSONObject js_apct =new JSONObject();
|
|
||||||
String hid=ll_saleorder.get(0).get("vdef9");//BIP合同销售订单更新 主表id
|
|
||||||
List<Map<String,Object>> l_map_f = new ArrayList<Map<String,Object>>();
|
|
||||||
for (Map<String, String> custpkmap : ll_saleorder) {
|
|
||||||
|
|
||||||
Map<String, Object> b_map = new HashMap<String, Object>();
|
|
||||||
|
|
||||||
b_map.put("id", custpkmap.get("vbdef11"));//BIP合同销售订单更新 子表id
|
|
||||||
b_map.put("billQty", custpkmap.get("billqty"));//累计开票主数量
|
|
||||||
b_map.put("totalAccrued", custpkmap.get("totalaccrued"));//累计确认应收金额
|
|
||||||
|
|
||||||
l_map_f.add(b_map);
|
|
||||||
|
|
||||||
js_apct.put("contractOrdersList", l_map_f);
|
|
||||||
js_apct.put("id", hid);
|
|
||||||
|
|
||||||
js_apct_detail.put("HTXSDD", js_apct);
|
|
||||||
|
|
||||||
String resultString=doSendHttp(custUpdateUrl,"POST",tokenParam,"",headers, js_apct_detail.toJSONString());
|
|
||||||
Map updateMap = gson.fromJson(resultString, Map.class);
|
|
||||||
String updateSql="";
|
|
||||||
if (StringUtils.equals("200", updateMap.get("code").toString())) {//保存更新成功后需要更新日志表
|
|
||||||
updateSql="update so_saleinvoice_b set vbdef10='Y' where csaleinvoiceid='"+map.get("csaleinvoicebid")+"'";
|
|
||||||
}else {
|
|
||||||
updateSql="update so_saleinvoice_b set vbdef10='N' where csaleinvoiceid='"+map.get("csaleinvoicebid")+"'";
|
|
||||||
}
|
|
||||||
getSuperDMO().executeUpdateSQL(updateSql);
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} catch (InvalidKeyException e) {
|
|
||||||
// TODO Auto-generated catch block
|
|
||||||
e.printStackTrace();
|
|
||||||
} catch (NoSuchAlgorithmException e) {
|
|
||||||
// TODO Auto-generated catch block
|
|
||||||
e.printStackTrace();
|
|
||||||
} catch (IOException e) {
|
|
||||||
// TODO Auto-generated catch block
|
|
||||||
e.printStackTrace();
|
|
||||||
}//获取BIP的token
|
|
||||||
catch (SQLException e) {
|
|
||||||
// TODO Auto-generated catch block
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
List<Map<String,String>> ll_cust = (List<Map<String, String>>)new BaseDAO().executeQuery(sel_sql,new MapListProcessor());
|
||||||
|
//不存在直接退出任务
|
||||||
|
if(ll_cust.isEmpty()) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (Map<String, String> custpkmap : ll_cust) {
|
||||||
|
|
||||||
|
String pk_cust=custpkmap.get("pk_cust");
|
||||||
|
|
||||||
|
System.out.println(pk_cust);
|
||||||
|
|
||||||
|
|
||||||
|
String sql="select bd_custbank.pk_custbank,bd_bankaccbas.accnum,bd_bankaccbas.enablestate,bd_bankaccbas.accname,bd_bankaccbas.accountproperty,bd_bankaccbas.combinenum,bd_custbank.pk_cust,bd_customer.code custcode,bd_customer.name custname,\r\n" +
|
||||||
|
"bd_bankaccbas.pk_bankdoc,bd_bankdoc.code bankdoccode,bd_bankdoc.name bankdocname,bd_bankaccbas.pk_banktype,bd_banktype.code banktypecode,bd_banktype.name banktypename\r\n" +
|
||||||
|
",bd_custbank.isdefault,bd_bankaccsub.pk_currtype,bd_currtype.code currcode,bd_currtype.name currname\r\n" +
|
||||||
|
" from bd_custbank,bd_bankaccbas,bd_bankaccsub,bd_customer,bd_bankdoc,bd_banktype,bd_currtype \r\n" +
|
||||||
|
" where bd_custbank.pk_bankaccbas=bd_bankaccbas.pk_bankaccbas\r\n" +
|
||||||
|
" and bd_custbank.pk_bankaccsub=bd_bankaccsub.pk_bankaccsub\r\n" +
|
||||||
|
" and bd_customer.pk_customer=bd_custbank.pk_cust\r\n" +
|
||||||
|
" and bd_bankdoc.pk_bankdoc=bd_bankaccbas.pk_bankdoc\r\n" +
|
||||||
|
" and bd_banktype.pk_banktype=bd_bankaccbas.pk_banktype\r\n" +
|
||||||
|
" and bd_currtype.pk_currtype=bd_bankaccsub.pk_currtype\r\n" +
|
||||||
|
" and bd_custbank.accclass=1 and bd_customer.pk_customer='"+pk_cust+"'";
|
||||||
|
//获取客户的银行账户子户信息
|
||||||
|
List<Map<String,String>> ll_log = (List<Map<String, String>>)new BaseDAO().executeQuery(sql,new MapListProcessor());
|
||||||
|
|
||||||
|
if(!ll_log.isEmpty()) {
|
||||||
|
try {
|
||||||
|
|
||||||
|
String accessToken=getAccessToken(baseUrl,bipParamMap);//获取BIP的token
|
||||||
|
if(accessToken!="") {
|
||||||
|
String custcode=ll_log.get(0).get("custcode");//客户编码
|
||||||
|
|
||||||
|
Gson gson = new Gson();
|
||||||
|
|
||||||
|
//通过BIP的API获取客户信息
|
||||||
|
String custurl=baseUrl+"/iuap-api-gateway/yonbip/digitalModel/merchant/detail?access_token="+accessToken;
|
||||||
|
HashMap<String, String> custMap = new HashMap<String, String>();
|
||||||
|
custMap.put("code", custcode);
|
||||||
|
|
||||||
|
String custdetailString=doGet(custurl,custMap);
|
||||||
|
|
||||||
|
// Map<String,Object> custDetailresult = gson.fromJson(custdetailString, Map.class);
|
||||||
|
JSONObject custDetailresult= JSON.parseObject(custdetailString);
|
||||||
|
if (StringUtils.equals("200", custDetailresult.get("code").toString())) {//客户存在
|
||||||
|
|
||||||
|
Map<String, Object> dataInfo = (Map<String, Object>) custDetailresult.get("data");
|
||||||
|
|
||||||
|
// dataInfo.remove("merchantApplyRanges");
|
||||||
|
|
||||||
|
String id=dataInfo.get("id").toString();
|
||||||
|
List<Map<String,Object>> l_map_f = new ArrayList<Map<String,Object>>();
|
||||||
|
List<Map<String,Object>> l_map = new ArrayList<Map<String,Object>>();
|
||||||
|
boolean bool =false;
|
||||||
|
if(!MMValueCheck.isEmpty(dataInfo.get("merchantAgentFinancialInfos"))){
|
||||||
|
bool=true;
|
||||||
|
l_map=(List<Map<String, Object>>) dataInfo.get("merchantAgentFinancialInfos");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Map<String,String> checkMap = new HashMap<String, String>();
|
||||||
|
checkMap.put("ss", "ss");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
for (Map<String, String> map : ll_log) {//Erp中查询出来的客户子账户
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
String accnum=map.get("accnum");//银行账户
|
||||||
|
|
||||||
|
if(checkMap.containsKey(accnum)) {//剔除erp中银行账号重合数据
|
||||||
|
continue;
|
||||||
|
}else {
|
||||||
|
checkMap.put(accnum, accnum);
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean check =false;
|
||||||
|
if (bool){//客户中已经存在银行账户
|
||||||
|
|
||||||
|
for (Map<String, Object> map_bankinfo : l_map) {//循环BIP客户信息里的银行账户
|
||||||
|
if (StringUtils.equals(accnum, map_bankinfo.get("bankAccount").toString())) {//匹配上,做更新
|
||||||
|
check=true;
|
||||||
|
map_bankinfo.put("_status", "Update");
|
||||||
|
map_bankinfo.put("jointLineNo", map.get("combinenum"));//联行号
|
||||||
|
map_bankinfo.put("accountType", map.get("accountproperty")==null?0:map.get("accountproperty"));
|
||||||
|
map_bankinfo.put("isDefault", map.get("isdefault")==null||map.get("isdefault").equals("N")?false:true);
|
||||||
|
map_bankinfo.put("stopstatus", map.get("enablestate")=="2"?true:false);
|
||||||
|
String currencyUrl = baseUrl+"/iuap-api-gateway/yonbip/digitalModel/currency/findByCode?access_token="+accessToken;
|
||||||
|
HashMap<String, String> paramCurrMap = new HashMap<String, String>();
|
||||||
|
paramCurrMap.put("code", map.get("currcode"));
|
||||||
|
String currencyString=doGet(currencyUrl, paramCurrMap);
|
||||||
|
JSONObject currencyDetailresult= JSON.parseObject(currencyString);
|
||||||
|
if (StringUtils.equals("200", currencyDetailresult.get("code").toString())) {//币种存在
|
||||||
|
Map<String, Object> currencydataInfo = (Map<String, Object>)currencyDetailresult.get("data");
|
||||||
|
map_bankinfo.put("currency", currencydataInfo.get("id"));//需要从bip获取对应的id
|
||||||
|
}
|
||||||
|
|
||||||
|
String bankUrl=baseUrl+"/iuap-api-gateway/yonbip/digitalModel/bankdot/list";
|
||||||
|
HashMap<String, String> paramabank = new HashMap<String, String>();
|
||||||
|
paramabank.put("pageIndex", "0");
|
||||||
|
paramabank.put("pageSize", "10");
|
||||||
|
paramabank.put("name", map.get("bankdocname"));
|
||||||
|
Map<String,String> bankMap=getBIPBankID(paramabank,bankUrl,accessToken,map.get("bankdocname"));
|
||||||
|
if(bankMap!=null) {
|
||||||
|
map_bankinfo.put("openBank", bankMap.get("id")); //需要从bip获取对应的id 网点api
|
||||||
|
map_bankinfo.put("bank", bankMap.get("bank"));//需要从bip获取对应的id
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!check) {
|
||||||
|
//没有匹配上走新增
|
||||||
|
Map<String,Object> map_add = new HashMap<String, Object>();
|
||||||
|
map_add.put("_status", "Insert");
|
||||||
|
map_add.put("merchantId_code_agent_financial_falg", custcode);
|
||||||
|
map_add.put("bankAccount", accnum);
|
||||||
|
HashMap<String, String> accname_map = new HashMap<String, String>();
|
||||||
|
accname_map.put("zh_CN", map.get("accname"));
|
||||||
|
map_add.put("bankAccountName", accname_map);
|
||||||
|
map_add.put("jointLineNo", map.get("combinenum"));
|
||||||
|
// map_add.put("openBank", value) 需要从bip获取对应的id
|
||||||
|
// map_add.put("bank", value)//需要从bip获取对应的id
|
||||||
|
// getBIPBankID
|
||||||
|
String bankUrl=baseUrl+"/iuap-api-gateway/yonbip/digitalModel/bankdot/list";
|
||||||
|
HashMap<String, String> paramabank = new HashMap<String, String>();
|
||||||
|
paramabank.put("pageIndex", "0");
|
||||||
|
paramabank.put("pageSize", "10");
|
||||||
|
paramabank.put("name", map.get("bankdocname"));
|
||||||
|
// map.get("bankdocname");
|
||||||
|
Map<String,String> bankMap=getBIPBankID(paramabank,bankUrl,accessToken,map.get("bankdocname"));
|
||||||
|
if(bankMap!=null) {
|
||||||
|
map_add.put("openBank", bankMap.get("id")); //需要从bip获取对应的id 网点api
|
||||||
|
map_add.put("bank", bankMap.get("bank"));//需要从bip获取对应的id
|
||||||
|
}
|
||||||
|
map_add.put("accountType", map.get("accountproperty")==null?0:map.get("accountproperty"));
|
||||||
|
map_add.put("merchantId_createOrg", "666666");
|
||||||
|
|
||||||
|
map.get("isdefault");
|
||||||
|
map_add.put("isDefault", map.get("isdefault")==null||map.get("isdefault").equals("N")?false:true);
|
||||||
|
map_add.put("merchantId", id);
|
||||||
|
// map_add.put("currency", value);需要从bip获取对应的id
|
||||||
|
String currencyUrl = baseUrl+"/iuap-api-gateway/yonbip/digitalModel/currency/findByCode?access_token="+accessToken;
|
||||||
|
HashMap<String, String> paramCurrMap = new HashMap<String, String>();
|
||||||
|
paramCurrMap.put("code", map.get("currcode"));
|
||||||
|
String currencyString=doGet(currencyUrl, paramCurrMap);
|
||||||
|
JSONObject currencyDetailresult= JSON.parseObject(currencyString);
|
||||||
|
if (StringUtils.equals("200", currencyDetailresult.get("code").toString())) {//币种存在
|
||||||
|
Map<String, Object> currencydataInfo = (Map<String, Object>)currencyDetailresult.get("data");
|
||||||
|
map_add.put("currency", currencydataInfo.get("id"));//需要从bip获取对应的id
|
||||||
|
}
|
||||||
|
map_add.put("stopstatus", map.get("enablestate")=="2"?true:false);
|
||||||
|
l_map_f.add(map_add);
|
||||||
|
}
|
||||||
|
|
||||||
|
}else {
|
||||||
|
|
||||||
|
Map<String,Object> map_add = new HashMap<String, Object>();
|
||||||
|
map_add.put("_status", "Insert");
|
||||||
|
map_add.put("merchantId_code_agent_financial_falg", custcode);
|
||||||
|
map_add.put("bankAccount", accnum);
|
||||||
|
HashMap<String, String> accname_map = new HashMap<String, String>();
|
||||||
|
accname_map.put("zh_CN", map.get("accname"));
|
||||||
|
map_add.put("bankAccountName", accname_map);
|
||||||
|
map_add.put("jointLineNo", map.get("combinenum"));
|
||||||
|
|
||||||
|
// getBIPBankID
|
||||||
|
String bankUrl=baseUrl+"/iuap-api-gateway/yonbip/digitalModel/bankdot/list";
|
||||||
|
HashMap<String, String> paramabank = new HashMap<String, String>();
|
||||||
|
paramabank.put("pageIndex", "0");
|
||||||
|
paramabank.put("pageSize", "10");
|
||||||
|
paramabank.put("name", map.get("bankdocname"));
|
||||||
|
|
||||||
|
Map<String,String> bankMap=getBIPBankID(paramabank,bankUrl,accessToken,map.get("bankdocname"));
|
||||||
|
if(bankMap!=null) {
|
||||||
|
map_add.put("openBank", bankMap.get("id")); //需要从bip获取对应的id 网点api
|
||||||
|
map_add.put("bank", bankMap.get("bank"));//需要从bip获取对应的id
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// map_add.put("accountType", 0);
|
||||||
|
map_add.put("accountType", map.get("accountproperty")==null?0:map.get("accountproperty"));
|
||||||
|
map_add.put("merchantId_createOrg", "666666");
|
||||||
|
//
|
||||||
|
map.get("isdefault");
|
||||||
|
map_add.put("isDefault", map.get("isdefault")==null||map.get("isdefault").equals("N")?false:true);
|
||||||
|
map_add.put("merchantId", id);
|
||||||
|
String currencyUrl = baseUrl+"/iuap-api-gateway/yonbip/digitalModel/currency/findByCode?access_token="+accessToken;
|
||||||
|
HashMap<String, String> paramCurrMap = new HashMap<String, String>();
|
||||||
|
paramCurrMap.put("code", map.get("currcode"));
|
||||||
|
String currencyString=doGet(currencyUrl, paramCurrMap);
|
||||||
|
// Map currencyDetailresult = gson.fromJson(currencyString, Map.class);
|
||||||
|
JSONObject currencyDetailresult= JSON.parseObject(currencyString);
|
||||||
|
if (StringUtils.equals("200", currencyDetailresult.get("code").toString())) {//币种存在
|
||||||
|
Map<String, Object> currencydataInfo = (Map<String, Object>)currencyDetailresult.get("data");
|
||||||
|
map_add.put("currency", currencydataInfo.get("id"));//需要从bip获取对应的id
|
||||||
|
}
|
||||||
|
//
|
||||||
|
map_add.put("stopstatus", map.get("enablestate")=="2"?true:false);
|
||||||
|
l_map_f.add(map_add);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!l_map.isEmpty()) {
|
||||||
|
if(!l_map_f.isEmpty()) {
|
||||||
|
l_map.addAll(l_map_f);
|
||||||
|
}
|
||||||
|
|
||||||
|
}else {
|
||||||
|
if(!l_map_f.isEmpty()) {
|
||||||
|
l_map.addAll(l_map_f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!l_map.isEmpty()) {
|
||||||
|
dataInfo.put("merchantAgentFinancialInfos", l_map);
|
||||||
|
custDetailresult.put("data", dataInfo);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//更新客户信息(银行账户信息)
|
||||||
|
String custUpdateUrl=baseUrl+"/iuap-api-gateway/yonbip/digitalModel/merchant/save";
|
||||||
|
|
||||||
|
Map<String,String> tokenParam = new HashMap<>();
|
||||||
|
tokenParam.put("access_token", accessToken);
|
||||||
|
// String jsonData= JSON.toJSONString(custDetailresult);
|
||||||
|
JSONObject js_apct_detail = JSONObject.parseObject(custdetailString);
|
||||||
|
Map<String, String> headers = new HashMap<String, String>();
|
||||||
|
headers.put("Content-Type", "application/json");
|
||||||
|
String resultString=doSendHttp(custUpdateUrl,"POST",tokenParam,"",headers, custDetailresult.toJSONString());
|
||||||
|
|
||||||
|
// String updateRestult= doPost(custUpdateUrl, custDetailresult);//调用BIP客户保存更新接口
|
||||||
|
// String updateRestult= doPost(custUpdateUrl, custDetailresult);//调用BIP客户保存更新接口
|
||||||
|
|
||||||
|
Map updateMap = gson.fromJson(resultString, Map.class);
|
||||||
|
if (StringUtils.equals("200", updateMap.get("code").toString())) {//保存更新成功后需要更新日志表
|
||||||
|
|
||||||
|
|
||||||
|
}else {//更新失败后,更新对应子账户的ts时间,以便下次再次能够获取到
|
||||||
|
// getSuperDMO().executeUpdateSQL("update bd_custbank set pk_custbank='"+ll_log.get(0).get("pk_custbank")+"' where pk_custbank='"+ll_log.get(0).get("pk_custbank")+"'");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}else {//BIP中客户不存在,更新对应子账户的ts时间,以便下次再次能够获取到
|
||||||
|
|
||||||
|
// getSuperDMO().executeUpdateSQL("update bd_custbank set pk_custbank='"+ll_log.get(0).get("pk_custbank")+"' where pk_custbank='"+ll_log.get(0).get("pk_custbank")+"'");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
} catch (InvalidKeyException e) {
|
||||||
|
// TODO Auto-generated catch block
|
||||||
|
e.printStackTrace();
|
||||||
|
} catch (NoSuchAlgorithmException e) {
|
||||||
|
// TODO Auto-generated catch block
|
||||||
|
e.printStackTrace();
|
||||||
|
} catch (IOException e) {
|
||||||
|
// TODO Auto-generated catch block
|
||||||
|
e.printStackTrace();
|
||||||
|
// } catch (SQLException e) {
|
||||||
|
// // TODO Auto-generated catch block
|
||||||
|
// e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Date date = new Date();
|
||||||
|
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||||
|
String dateTime = dateFormat.format(date);
|
||||||
|
String sql_update=" update bd_defdoc set name='"+dateTime+"' where code='dests' and pk_defdoclist in (select pk_defdoclist from bd_defdoclist where code='BIP-sq' and dr=0) and dr=0 "; //dateTime
|
||||||
|
try {
|
||||||
|
getSuperDMO().executeUpdateSQL(sql_update);
|
||||||
|
} catch (SQLException e) {
|
||||||
|
// TODO Auto-generated catch block
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
@ -229,22 +428,25 @@ public class ErpSaleOrderToBIPBackgroupWorkPlugin implements IBackgroundWorkPlug
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询bip 中开户行及银行类型id
|
* 查询bip 中开户行及银行类型id
|
||||||
* @param map
|
* @param map
|
||||||
* @param bipUrl
|
* @param bipUrl
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
private static Map<String,String> getBIPBankID(HashMap<String, String> map,String bipUrl,String accessToken,String bankdocname) {
|
private Map<String,String> getBIPBankID(HashMap<String, String> map,String bipUrl,String accessToken,String bankdocname) {
|
||||||
|
|
||||||
Gson gson = new Gson();
|
Gson gson = new Gson();
|
||||||
|
|
||||||
|
Map<String, String> headers = new HashMap<String, String>();
|
||||||
|
headers.put("Content-Type", "application/json");
|
||||||
|
|
||||||
Map<String,String> tokenParam = new HashMap<>();
|
Map<String,String> tokenParam = new HashMap<>();
|
||||||
tokenParam.put("access_token", accessToken);
|
tokenParam.put("access_token", accessToken);
|
||||||
String jsonData= JSON.toJSONString(map);
|
String jsonData= JSON.toJSONString(map);
|
||||||
String resultString=doSendHttp(bipUrl,"POST",tokenParam,"",new HashMap<>(), jsonData);
|
String resultString=doSendHttp(bipUrl,"POST",tokenParam,"",headers, jsonData);
|
||||||
// Map custDetailresult = gson.fromJson(resultString, Map.class);
|
// Map custDetailresult = gson.fromJson(resultString, Map.class);
|
||||||
JSONObject custDetailresult= JSON.parseObject(resultString);
|
JSONObject custDetailresult= JSON.parseObject(resultString);
|
||||||
if (StringUtils.equals("200", custDetailresult.get("code").toString())) {//数据存在
|
if (StringUtils.equals("200", custDetailresult.get("code").toString())) {//数据存在
|
||||||
Map<String, Object> dataInfo = (Map<String, Object>)custDetailresult.get("data");
|
Map<String, Object> dataInfo = (Map<String, Object>)custDetailresult.get("data");
|
||||||
if(!MMValueCheck.isEmpty(dataInfo.get("recordList"))){
|
if(!MMValueCheck.isEmpty(dataInfo.get("recordList"))){
|
||||||
List<Map<String,String>> l_record=(List<Map<String, String>>) dataInfo.get("recordList");
|
List<Map<String,String>> l_record=(List<Map<String, String>>) dataInfo.get("recordList");
|
||||||
|
@ -253,10 +455,10 @@ public class ErpSaleOrderToBIPBackgroupWorkPlugin implements IBackgroundWorkPlug
|
||||||
map.remove("linenumber");
|
map.remove("linenumber");
|
||||||
map.put("name", bankdocname);
|
map.put("name", bankdocname);
|
||||||
jsonData= JSON.toJSONString(map);
|
jsonData= JSON.toJSONString(map);
|
||||||
resultString=doSendHttp(bipUrl,"POST",tokenParam,"",new HashMap<>(), jsonData);
|
resultString=doSendHttp(bipUrl,"POST",tokenParam,"",headers, jsonData);
|
||||||
// custDetailresult = gson.fromJson(resultString, Map.class);
|
// custDetailresult = gson.fromJson(resultString, Map.class);
|
||||||
custDetailresult= JSON.parseObject(resultString);
|
custDetailresult= JSON.parseObject(resultString);
|
||||||
if (StringUtils.equals("200", custDetailresult.get("code").toString())) {//数据存在
|
if (StringUtils.equals("200", custDetailresult.get("code").toString())) {//数据存在
|
||||||
dataInfo = (Map<String, Object>)custDetailresult.get("data");
|
dataInfo = (Map<String, Object>)custDetailresult.get("data");
|
||||||
if(!MMValueCheck.isEmpty(dataInfo.get("recordList"))){
|
if(!MMValueCheck.isEmpty(dataInfo.get("recordList"))){
|
||||||
List<Map<String,String>> l_record=(List<Map<String, String>>) dataInfo.get("recordList");
|
List<Map<String,String>> l_record=(List<Map<String, String>>) dataInfo.get("recordList");
|
||||||
|
@ -269,7 +471,7 @@ public class ErpSaleOrderToBIPBackgroupWorkPlugin implements IBackgroundWorkPlug
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static String doSendHttp(String baseUrl, String method, Map<String, String> paramMap, String mediaType, Map<String, String> headers, String json){
|
public String doSendHttp(String baseUrl, String method, Map<String, String> paramMap, String mediaType, Map<String, String> headers, String json){
|
||||||
HttpURLConnection urlConnection = null;
|
HttpURLConnection urlConnection = null;
|
||||||
InputStream in = null;
|
InputStream in = null;
|
||||||
OutputStream out = null;
|
OutputStream out = null;
|
||||||
|
@ -288,11 +490,11 @@ public class ErpSaleOrderToBIPBackgroupWorkPlugin implements IBackgroundWorkPlug
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// log.error("uRL:" + baseUrl);
|
// log.error("uRL:" + baseUrl);
|
||||||
// // 打印请求URL和方法
|
// // 打印请求URL和方法
|
||||||
// log.error("Request URL: " + baseUrl);
|
// log.error("Request URL: " + baseUrl);
|
||||||
// log.error("Request Method: " + method);
|
// log.error("Request Method: " + method);
|
||||||
URL urlobj = new URL(baseUrl);
|
URL urlobj = new URL(baseUrl);
|
||||||
if("https".equalsIgnoreCase(urlobj.getProtocol())) {//判定网址是否信任,不信任则调用忽略信任工具类SslUtil
|
if("https".equalsIgnoreCase(urlobj.getProtocol())) {//判定网址是否信任,不信任则调用忽略信任工具类SslUtil
|
||||||
IgnoreSslUtil.ignoreSsl();
|
IgnoreSslUtil.ignoreSsl();
|
||||||
}
|
}
|
||||||
urlConnection = (HttpURLConnection)urlobj.openConnection();
|
urlConnection = (HttpURLConnection)urlobj.openConnection();
|
||||||
|
@ -300,7 +502,7 @@ public class ErpSaleOrderToBIPBackgroupWorkPlugin implements IBackgroundWorkPlug
|
||||||
urlConnection.setRequestMethod(method);
|
urlConnection.setRequestMethod(method);
|
||||||
urlConnection.setDoInput(true);
|
urlConnection.setDoInput(true);
|
||||||
urlConnection.setUseCaches(false);
|
urlConnection.setUseCaches(false);
|
||||||
// 如果设置了自定义头,则打印它们
|
// 如果设置了自定义头,则打印它们
|
||||||
if (headers != null && !headers.isEmpty()) {
|
if (headers != null && !headers.isEmpty()) {
|
||||||
for (Map.Entry<String, String> entry : headers.entrySet()) {
|
for (Map.Entry<String, String> entry : headers.entrySet()) {
|
||||||
urlConnection.addRequestProperty(entry.getKey(), entry.getValue());
|
urlConnection.addRequestProperty(entry.getKey(), entry.getValue());
|
||||||
|
@ -341,7 +543,7 @@ public class ErpSaleOrderToBIPBackgroupWorkPlugin implements IBackgroundWorkPlug
|
||||||
}catch(Exception e) {
|
}catch(Exception e) {
|
||||||
JSONObject js=new JSONObject();
|
JSONObject js=new JSONObject();
|
||||||
js.put("",-1);
|
js.put("",-1);
|
||||||
js.put("message","调用外系统接口失败:"+e.getMessage());
|
js.put("message","调用外系统接口失败:"+e.getMessage());
|
||||||
result=js.toString();
|
result=js.toString();
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}finally {
|
}finally {
|
||||||
|
@ -374,7 +576,7 @@ public class ErpSaleOrderToBIPBackgroupWorkPlugin implements IBackgroundWorkPlug
|
||||||
|
|
||||||
// private String createCustBankMap(Map<String,String> map,String access_token) {
|
// private String createCustBankMap(Map<String,String> map,String access_token) {
|
||||||
// Gson gson = new Gson();
|
// Gson gson = new Gson();
|
||||||
// //获取BIP中的客户详情
|
// //获取BIP中的客户详情
|
||||||
// String custcode=map.get("custcode");
|
// String custcode=map.get("custcode");
|
||||||
// String custurl=baseUrl+"/yonbip/digitalModel/merchant/detail?access_token="+access_token;
|
// String custurl=baseUrl+"/yonbip/digitalModel/merchant/detail?access_token="+access_token;
|
||||||
// HashMap<String, String> custMap = new HashMap<String, String>();
|
// HashMap<String, String> custMap = new HashMap<String, String>();
|
||||||
|
@ -383,11 +585,11 @@ public class ErpSaleOrderToBIPBackgroupWorkPlugin implements IBackgroundWorkPlug
|
||||||
// String custdetailString=doGet(custurl,custMap);
|
// String custdetailString=doGet(custurl,custMap);
|
||||||
//
|
//
|
||||||
// Map custDetailresult = gson.fromJson(custdetailString, Map.class);
|
// Map custDetailresult = gson.fromJson(custdetailString, Map.class);
|
||||||
// if (StringUtils.equals("200", custDetailresult.get("code").toString())) {//客户存在
|
// if (StringUtils.equals("200", custDetailresult.get("code").toString())) {//客户存在
|
||||||
//
|
//
|
||||||
// Map<String, Object> dataInfo = (Map<String, Object>) custDetailresult.get("data");
|
// Map<String, Object> dataInfo = (Map<String, Object>) custDetailresult.get("data");
|
||||||
//
|
//
|
||||||
// if (!MMValueCheck.isEmpty(dataInfo.get("merchantAgentFinancialInfos"))){//客户中已经存在银行账户
|
// if (!MMValueCheck.isEmpty(dataInfo.get("merchantAgentFinancialInfos"))){//客户中已经存在银行账户
|
||||||
//
|
//
|
||||||
// }else {
|
// }else {
|
||||||
//
|
//
|
||||||
|
@ -396,7 +598,7 @@ public class ErpSaleOrderToBIPBackgroupWorkPlugin implements IBackgroundWorkPlug
|
||||||
// }
|
// }
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
// //开户行
|
// //开户行
|
||||||
// String bankdoccode=map.get("bankdoccode");
|
// String bankdoccode=map.get("bankdoccode");
|
||||||
// HashMap<String, Object> paramap = new HashMap<String, Object>();
|
// HashMap<String, Object> paramap = new HashMap<String, Object>();
|
||||||
// paramap.put("pageIndex", 0);
|
// paramap.put("pageIndex", 0);
|
||||||
|
@ -430,7 +632,7 @@ public class ErpSaleOrderToBIPBackgroupWorkPlugin implements IBackgroundWorkPlug
|
||||||
params.put("appKey", appKey);
|
params.put("appKey", appKey);
|
||||||
String timestamp = String.valueOf(System.currentTimeMillis());
|
String timestamp = String.valueOf(System.currentTimeMillis());
|
||||||
params.put("timestamp", timestamp);
|
params.put("timestamp", timestamp);
|
||||||
// 计算签名
|
// 计算签名
|
||||||
Map<String, String> treeMap;
|
Map<String, String> treeMap;
|
||||||
if (params instanceof TreeMap) {
|
if (params instanceof TreeMap) {
|
||||||
treeMap = params;
|
treeMap = params;
|
||||||
|
@ -470,9 +672,9 @@ public class ErpSaleOrderToBIPBackgroupWorkPlugin implements IBackgroundWorkPlug
|
||||||
cm.setMaxTotal(500);
|
cm.setMaxTotal(500);
|
||||||
cm.setDefaultMaxPerRoute(50);
|
cm.setDefaultMaxPerRoute(50);
|
||||||
|
|
||||||
RequestConfig globalConfig = RequestConfig.custom().setConnectionRequestTimeout(5000) // 连接池获取连接超时
|
RequestConfig globalConfig = RequestConfig.custom().setConnectionRequestTimeout(5000) // 连接池获取连接超时
|
||||||
.setConnectTimeout(5000) // 连接建立超时
|
.setConnectTimeout(5000) // 连接建立超时
|
||||||
.setSocketTimeout(20000) // 等待响应超时
|
.setSocketTimeout(20000) // 等待响应超时
|
||||||
.setCookieSpec(CookieSpecs.IGNORE_COOKIES).build();
|
.setCookieSpec(CookieSpecs.IGNORE_COOKIES).build();
|
||||||
|
|
||||||
CloseableHttpClient httpClient = HttpClients.custom().setConnectionManager(cm)
|
CloseableHttpClient httpClient = HttpClients.custom().setConnectionManager(cm)
|
||||||
|
@ -491,9 +693,9 @@ public class ErpSaleOrderToBIPBackgroupWorkPlugin implements IBackgroundWorkPlug
|
||||||
cm.setMaxTotal(500);
|
cm.setMaxTotal(500);
|
||||||
cm.setDefaultMaxPerRoute(50);
|
cm.setDefaultMaxPerRoute(50);
|
||||||
|
|
||||||
RequestConfig globalConfig = RequestConfig.custom().setConnectionRequestTimeout(5000) // 连接池获取连接超时
|
RequestConfig globalConfig = RequestConfig.custom().setConnectionRequestTimeout(5000) // 连接池获取连接超时
|
||||||
.setConnectTimeout(5000) // 连接建立超时
|
.setConnectTimeout(5000) // 连接建立超时
|
||||||
.setSocketTimeout(20000) // 等待响应超时
|
.setSocketTimeout(20000) // 等待响应超时
|
||||||
.setCookieSpec(CookieSpecs.IGNORE_COOKIES).build();
|
.setCookieSpec(CookieSpecs.IGNORE_COOKIES).build();
|
||||||
|
|
||||||
CloseableHttpClient httpClient = HttpClients.custom().setConnectionManager(cm)
|
CloseableHttpClient httpClient = HttpClients.custom().setConnectionManager(cm)
|
||||||
|
@ -507,7 +709,7 @@ public class ErpSaleOrderToBIPBackgroupWorkPlugin implements IBackgroundWorkPlug
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private static String doGet(String path, Map<String, String> params) throws IOException {
|
private String doGet(String path, Map<String, String> params) throws IOException {
|
||||||
HttpURLConnection conn = null;
|
HttpURLConnection conn = null;
|
||||||
InputStream is = null;
|
InputStream is = null;
|
||||||
BufferedReader br = null;
|
BufferedReader br = null;
|
||||||
|
@ -528,21 +730,21 @@ public class ErpSaleOrderToBIPBackgroupWorkPlugin implements IBackgroundWorkPlug
|
||||||
path += '?' + paramStr;
|
path += '?' + paramStr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//创建远程url连接对象
|
//创建远程url连接对象
|
||||||
URL url = new URL(path);
|
URL url = new URL(path);
|
||||||
if("https".equalsIgnoreCase(url.getProtocol())){//判定网址是否信任,不信任则调用忽略信任工具类SslUtil
|
if("https".equalsIgnoreCase(url.getProtocol())){//判定网址是否信任,不信任则调用忽略信任工具类SslUtil
|
||||||
IgnoreSslUtil.ignoreSsl();
|
IgnoreSslUtil.ignoreSsl();
|
||||||
}
|
}
|
||||||
//通过远程url连接对象打开一个连接,强转成HTTPURLConnection类
|
//通过远程url连接对象打开一个连接,强转成HTTPURLConnection类
|
||||||
conn = (HttpURLConnection) url.openConnection();
|
conn = (HttpURLConnection) url.openConnection();
|
||||||
conn.setRequestMethod("GET");
|
conn.setRequestMethod("GET");
|
||||||
//设置连接超时时间和读取超时时间
|
//设置连接超时时间和读取超时时间
|
||||||
conn.setConnectTimeout(120000);
|
conn.setConnectTimeout(120000);
|
||||||
conn.setReadTimeout(120000);
|
conn.setReadTimeout(120000);
|
||||||
conn.setRequestProperty("Accept", "application/json");
|
conn.setRequestProperty("Accept", "application/json");
|
||||||
//发送请求
|
//发送请求
|
||||||
conn.connect();
|
conn.connect();
|
||||||
//通过conn取得输入流,并使用Reader读取
|
//通过conn取得输入流,并使用Reader读取
|
||||||
if (200 == conn.getResponseCode()) {
|
if (200 == conn.getResponseCode()) {
|
||||||
is = conn.getInputStream();
|
is = conn.getInputStream();
|
||||||
br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
|
br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
|
||||||
|
@ -586,9 +788,9 @@ public class ErpSaleOrderToBIPBackgroupWorkPlugin implements IBackgroundWorkPlug
|
||||||
// cm.setMaxTotal(500);
|
// cm.setMaxTotal(500);
|
||||||
// cm.setDefaultMaxPerRoute(50);
|
// cm.setDefaultMaxPerRoute(50);
|
||||||
//
|
//
|
||||||
// RequestConfig globalConfig = RequestConfig.custom().setConnectionRequestTimeout(5000) // 连接池获取连接超时
|
// RequestConfig globalConfig = RequestConfig.custom().setConnectionRequestTimeout(5000) // 连接池获取连接超时
|
||||||
// .setConnectTimeout(5000) // 连接建立超时
|
// .setConnectTimeout(5000) // 连接建立超时
|
||||||
// .setSocketTimeout(20000) // 等待响应超时
|
// .setSocketTimeout(20000) // 等待响应超时
|
||||||
// .setCookieSpec(CookieSpecs.IGNORE_COOKIES).build();
|
// .setCookieSpec(CookieSpecs.IGNORE_COOKIES).build();
|
||||||
//
|
//
|
||||||
// CloseableHttpClient httpClient = HttpClients.custom().setConnectionManager(cm)
|
// CloseableHttpClient httpClient = HttpClients.custom().setConnectionManager(cm)
|
Loading…
Reference in New Issue