fw-bip分支结构上传
This commit is contained in:
parent
f0db5772a2
commit
85e1821f75
|
@ -18,11 +18,11 @@
|
||||||
<artifactId>base-service</artifactId>
|
<artifactId>base-service</artifactId>
|
||||||
<version>${revision}</version>
|
<version>${revision}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<!-- <dependency>-->
|
<dependency>
|
||||||
<!-- <groupId>com.hzya.frame</groupId>-->
|
<groupId>com.hzya.frame</groupId>
|
||||||
<!-- <artifactId>fw-bip</artifactId>-->
|
<artifactId>fw-bip</artifactId>
|
||||||
<!-- <version>${revision}</version>-->
|
<version>${revision}</version>
|
||||||
<!-- </dependency>-->
|
</dependency>
|
||||||
<!-- <dependency>-->
|
<!-- <dependency>-->
|
||||||
<!-- <groupId>com.hzya.frame</groupId>-->
|
<!-- <groupId>com.hzya.frame</groupId>-->
|
||||||
<!-- <artifactId>fw-cbs</artifactId>-->
|
<!-- <artifactId>fw-cbs</artifactId>-->
|
||||||
|
|
|
@ -0,0 +1,85 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<parent>
|
||||||
|
<artifactId>kangarooDataCenterV3</artifactId>
|
||||||
|
<groupId>com.hzya.frame</groupId>
|
||||||
|
<version>${revision}</version>
|
||||||
|
</parent>
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<artifactId>fw-bip</artifactId>
|
||||||
|
<packaging>jar</packaging>
|
||||||
|
<version>${revision}</version>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.hzya.frame</groupId>
|
||||||
|
<artifactId>base-service</artifactId>
|
||||||
|
<version>${revision}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>mysql</groupId>
|
||||||
|
<artifactId>mysql-connector-java</artifactId>
|
||||||
|
<version>${mysql-connector-java}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.hzya.bip</groupId>
|
||||||
|
<artifactId>pubbaseapp_nccloud_rtLevel</artifactId>
|
||||||
|
<version>1</version>
|
||||||
|
<scope>system</scope>
|
||||||
|
<systemPath>${basedir}/src/main/resources/lib/pubbaseapp_nccloud_rtLevel-1.jar</systemPath>
|
||||||
|
</dependency>
|
||||||
|
<!-- <dependency>-->
|
||||||
|
<!-- <groupId>com.hzya.bipyonyoulog</groupId>-->
|
||||||
|
<!-- <artifactId>yonyoulog</artifactId>-->
|
||||||
|
<!-- <version>1</version>-->
|
||||||
|
<!-- <scope>system</scope>-->
|
||||||
|
<!-- <systemPath>${basedir}/src/main/resources/lib/yonyoulog.jar</systemPath>-->
|
||||||
|
<!-- </dependency>-->
|
||||||
|
|
||||||
|
<!-- <dependency>-->
|
||||||
|
<!-- <groupId>com.hzya.bcprov</groupId>-->
|
||||||
|
<!-- <artifactId>bcprov</artifactId>-->
|
||||||
|
<!-- <version>1</version>-->
|
||||||
|
<!-- <scope>system</scope>-->
|
||||||
|
<!-- <systemPath>${basedir}/src/main/resources/lib/bcprov-jdk15on-1.70.jar</systemPath>-->
|
||||||
|
<!-- </dependency>-->
|
||||||
|
|
||||||
|
<!-- <dependency>-->
|
||||||
|
<!-- <groupId>com.hzya.DataApiSdk</groupId>-->
|
||||||
|
<!-- <artifactId>DataApiSdk</artifactId>-->
|
||||||
|
<!-- <version>1</version>-->
|
||||||
|
<!-- <scope>system</scope>-->
|
||||||
|
<!-- <systemPath>${basedir}/src/main/resources/lib/DataApiSdk-jar-with-dependencies.jar</systemPath>-->
|
||||||
|
<!-- </dependency>-->
|
||||||
|
<!-- <dependency>-->
|
||||||
|
<!-- <groupId>com.hzya.openBasicSDK</groupId>-->
|
||||||
|
<!-- <artifactId>openBasicSDK</artifactId>-->
|
||||||
|
<!-- <version>1</version>-->
|
||||||
|
<!-- <scope>system</scope>-->
|
||||||
|
<!-- <systemPath>${basedir}/src/main/resources/lib/openBasicSDK-2.1.230630.jar</systemPath>-->
|
||||||
|
<!-- </dependency>-->
|
||||||
|
</dependencies>
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||||
|
<configuration>
|
||||||
|
<mainClass>none</mainClass> <!-- 取消查找本项目下的Main方法:为了解决Unable to find main class的问题 -->
|
||||||
|
<classifier>execute</classifier> <!-- 为了解决依赖模块找不到此模块中的类或属性 -->
|
||||||
|
<skip>true</skip>
|
||||||
|
</configuration>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<goals>
|
||||||
|
<goal>repackage</goal>
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
</project>
|
|
@ -0,0 +1,17 @@
|
||||||
|
package com.hzya.frame.bip.v3.v2207.dao;
|
||||||
|
|
||||||
|
import com.hzya.frame.basedao.dao.IBaseDao;
|
||||||
|
import com.hzya.frame.bip.v3.v2207.entity.BipOrgsEntity;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
|
public interface IBipOrgsDao extends IBaseDao<BipOrgsEntity, String> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询BIP业务单元
|
||||||
|
* @param BipOrgsEntity
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<BipOrgsEntity> thirdInterfaceGetOrgs(BipOrgsEntity BipOrgsEntity);
|
||||||
|
}
|
|
@ -0,0 +1,17 @@
|
||||||
|
package com.hzya.frame.bip.v3.v2207.dao;
|
||||||
|
|
||||||
|
import com.hzya.frame.basedao.dao.IBaseDao;
|
||||||
|
import com.hzya.frame.bip.v3.v2207.entity.BipOrgsDetailsEntity;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
|
public interface IBipOrgsDetailsDao extends IBaseDao<BipOrgsDetailsEntity, String> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询BIP业务单元银行账户
|
||||||
|
* @param BipOrgsDetailsEntity
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<BipOrgsDetailsEntity> thirdInterfaceGetOrgsDetails(BipOrgsDetailsEntity BipOrgsDetailsEntity);
|
||||||
|
}
|
|
@ -0,0 +1,18 @@
|
||||||
|
package com.hzya.frame.bip.v3.v2207.dao;
|
||||||
|
|
||||||
|
import com.baomidou.dynamic.datasource.annotation.DS;
|
||||||
|
import com.hzya.frame.basedao.dao.IBaseDao;
|
||||||
|
import com.hzya.frame.bip.v3.v2207.entity.BipSupplierEntity;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
|
public interface IBipSupplierDao extends IBaseDao<BipSupplierEntity, String> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询BIP供应商
|
||||||
|
* @param bipSupplierEntity
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<BipSupplierEntity> thirdInterfaceGetSupplier(BipSupplierEntity bipSupplierEntity);
|
||||||
|
}
|
|
@ -0,0 +1,18 @@
|
||||||
|
package com.hzya.frame.bip.v3.v2207.dao;
|
||||||
|
|
||||||
|
import com.hzya.frame.basedao.dao.IBaseDao;
|
||||||
|
import com.hzya.frame.bip.v3.v2207.entity.BipSupplierDetailsEntity;
|
||||||
|
import com.hzya.frame.bip.v3.v2207.entity.BipSupplierEntity;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
|
public interface IBipSupplierDetailsDao extends IBaseDao<BipSupplierDetailsEntity, String> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询BIP供应商明细
|
||||||
|
* @param bipSupplierDetailsEntity
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<BipSupplierDetailsEntity> thirdInterfaceGetSupplierDetails(BipSupplierDetailsEntity bipSupplierDetailsEntity);
|
||||||
|
}
|
|
@ -0,0 +1,24 @@
|
||||||
|
package com.hzya.frame.bip.v3.v2207.dao.impl;
|
||||||
|
|
||||||
|
import com.baomidou.dynamic.datasource.annotation.DS;
|
||||||
|
import com.hzya.frame.basedao.dao.MybatisGenericDao;
|
||||||
|
import com.hzya.frame.bip.v3.v2207.dao.IBipOrgsDao;
|
||||||
|
import com.hzya.frame.bip.v3.v2207.dao.IBipSupplierDao;
|
||||||
|
import com.hzya.frame.bip.v3.v2207.entity.BipOrgsEntity;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Repository("bipOrgsDaoImpl")
|
||||||
|
public class BipOrgsDaoImpl extends MybatisGenericDao<BipOrgsEntity,String> implements IBipOrgsDao {
|
||||||
|
/**
|
||||||
|
* 查询BIP业务单元
|
||||||
|
* @param BipOrgsEntity
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@DS("oracle91")
|
||||||
|
@Override
|
||||||
|
public List<BipOrgsEntity> thirdInterfaceGetOrgs(BipOrgsEntity BipOrgsEntity) {
|
||||||
|
return super.query("com.hzya.frame.bip.v3.v2207.dao.impl.BipOrgsDaoImpl.thirdInterfaceGetOrgs",BipOrgsEntity);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,19 @@
|
||||||
|
package com.hzya.frame.bip.v3.v2207.dao.impl;
|
||||||
|
|
||||||
|
import com.baomidou.dynamic.datasource.annotation.DS;
|
||||||
|
import com.hzya.frame.basedao.dao.MybatisGenericDao;
|
||||||
|
import com.hzya.frame.bip.v3.v2207.dao.IBipOrgsDetailsDao;
|
||||||
|
import com.hzya.frame.bip.v3.v2207.dao.IBipSupplierDetailsDao;
|
||||||
|
import com.hzya.frame.bip.v3.v2207.entity.BipOrgsDetailsEntity;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Repository("bipOrgsDetailsDaoImpl")
|
||||||
|
public class BipOrgsDetailsDaoImpl extends MybatisGenericDao<BipOrgsDetailsEntity,String> implements IBipOrgsDetailsDao {
|
||||||
|
@DS("oracle91")
|
||||||
|
@Override
|
||||||
|
public List<BipOrgsDetailsEntity> thirdInterfaceGetOrgsDetails(BipOrgsDetailsEntity bipOrgsDetailsEntity) {
|
||||||
|
return super.query("com.hzya.frame.bip.v3.v2207.dao.impl.BipOrgsDetailsDaoImpl.thirdInterfaceGetOrgsDetails",bipOrgsDetailsEntity);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,25 @@
|
||||||
|
package com.hzya.frame.bip.v3.v2207.dao.impl;
|
||||||
|
|
||||||
|
import cn.hutool.http.HttpRequest;
|
||||||
|
import com.baomidou.dynamic.datasource.annotation.DS;
|
||||||
|
import com.hzya.frame.basedao.dao.MybatisGenericDao;
|
||||||
|
import com.hzya.frame.bip.v3.v2207.dao.IBipSupplierDao;
|
||||||
|
import com.hzya.frame.bip.v3.v2207.entity.BipSupplierEntity;
|
||||||
|
import com.hzya.frame.util.HttpUtil;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Repository("bipSupplierDaoImpl")
|
||||||
|
public class BipSupplierDaoImpl extends MybatisGenericDao<BipSupplierEntity,String> implements IBipSupplierDao {
|
||||||
|
/**
|
||||||
|
* 查询BIP供应商
|
||||||
|
* @param bipSupplierEntity
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@DS("oracle91")
|
||||||
|
@Override
|
||||||
|
public List<BipSupplierEntity> thirdInterfaceGetSupplier(BipSupplierEntity bipSupplierEntity) {
|
||||||
|
return super.query("com.hzya.frame.bip.v3.v2207.dao.impl.BipSupplierDaoImpl.thirdInterfaceGetSupplier",bipSupplierEntity);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,20 @@
|
||||||
|
package com.hzya.frame.bip.v3.v2207.dao.impl;
|
||||||
|
|
||||||
|
import com.baomidou.dynamic.datasource.annotation.DS;
|
||||||
|
import com.hzya.frame.basedao.dao.MybatisGenericDao;
|
||||||
|
import com.hzya.frame.bip.v3.v2207.dao.IBipSupplierDao;
|
||||||
|
import com.hzya.frame.bip.v3.v2207.dao.IBipSupplierDetailsDao;
|
||||||
|
import com.hzya.frame.bip.v3.v2207.entity.BipSupplierDetailsEntity;
|
||||||
|
import com.hzya.frame.bip.v3.v2207.entity.BipSupplierEntity;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Repository("bipSupplierDetailsDaoImpl")
|
||||||
|
public class BipSupplierDetailsDaoImpl extends MybatisGenericDao<BipSupplierDetailsEntity,String> implements IBipSupplierDetailsDao {
|
||||||
|
@DS("oracle91")
|
||||||
|
@Override
|
||||||
|
public List<BipSupplierDetailsEntity> thirdInterfaceGetSupplierDetails(BipSupplierDetailsEntity bipSupplierDetailsEntity) {
|
||||||
|
return super.query("com.hzya.frame.bip.v3.v2207.dao.impl.BipSupplierDetailsDaoImpl.thirdInterfaceGetSupplierDetails",bipSupplierDetailsEntity);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,38 @@
|
||||||
|
package com.hzya.frame.bip.v3.v2207.dps.service;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
|
||||||
|
|
||||||
|
public interface IPayMentService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @content 获取杭泰OA付款单传递CFS
|
||||||
|
* @Param
|
||||||
|
* @Return
|
||||||
|
* @Author hecan
|
||||||
|
* @Date 2023/10/16 11:59
|
||||||
|
* **/
|
||||||
|
String sendOAPayMentToCFS(JSONObject jsonObject, String type);
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @content 获取CFS登录校验码
|
||||||
|
* @Param
|
||||||
|
* @Return
|
||||||
|
* @Author hecan
|
||||||
|
* @Date 2023/10/16 13:37
|
||||||
|
* **/
|
||||||
|
String sendCFSToken(String name, String password);
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @content 获取杭泰OA报销单传递CFS
|
||||||
|
* @Param
|
||||||
|
* @Return
|
||||||
|
* @Author hecan
|
||||||
|
* @Date 2023/10/16 16:17
|
||||||
|
* **/
|
||||||
|
String sendExpenseToCFS(JSONObject jsonObject);
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,389 @@
|
||||||
|
package com.hzya.frame.bip.v3.v2207.dps.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.http.HttpRequest;
|
||||||
|
import com.alibaba.fastjson.JSON;
|
||||||
|
import com.alibaba.fastjson.JSONArray;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.hzya.frame.bip.v3.v2207.dps.service.IPayMentService;
|
||||||
|
import com.hzya.frame.dateutil.DateUtil;
|
||||||
|
import org.dom4j.Document;
|
||||||
|
import org.dom4j.DocumentHelper;
|
||||||
|
import org.dom4j.Element;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.xml.sax.InputSource;
|
||||||
|
|
||||||
|
import javax.xml.parsers.DocumentBuilder;
|
||||||
|
import javax.xml.parsers.DocumentBuilderFactory;
|
||||||
|
import java.io.StringReader;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
|
@Service(value = "payMentServiceImpl")
|
||||||
|
public class PayMentServiceImpl implements IPayMentService {
|
||||||
|
|
||||||
|
private static final Logger logger = LoggerFactory.getLogger(PayMentServiceImpl.class);
|
||||||
|
|
||||||
|
private static final String NAME="admin";
|
||||||
|
private static final String PASSWORD="aHRzejg4OA==";
|
||||||
|
private static final String CFSURL="http://101.132.140.208:26883/erp/services/";//测试端口:26893,正式端口:26883
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @content 杭泰OA付款单传递CFS 注:付款单,资金归集,资金拨付,同名账户划转和借款单都用同一个接口
|
||||||
|
* @Param
|
||||||
|
* @Return
|
||||||
|
* @Author hecan
|
||||||
|
* @Date 2023/10/13 10:40
|
||||||
|
* **/
|
||||||
|
public String sendOAPayMentToCFS(JSONObject jsonStr,String type){
|
||||||
|
logger.info("开始执行杭泰OA付款单传递CFS");
|
||||||
|
try {
|
||||||
|
String cfsToken = sendCFSToken(NAME, PASSWORD);
|
||||||
|
if(null!=cfsToken) {
|
||||||
|
String jsonStrObj = jsonStr.getString("jsonStr");
|
||||||
|
JSONObject jsonObjectMain = JSON.parseObject(jsonStrObj);
|
||||||
|
String erpVoucherNo = jsonObjectMain.getString("erpVoucherNo");//OA主键
|
||||||
|
String purpose = jsonObjectMain.getString("purpose");//摘要
|
||||||
|
String isForindividual = "0";//是否对私付款
|
||||||
|
StringBuffer stringBuffer = new StringBuffer();
|
||||||
|
String documentType=null;
|
||||||
|
switch (type){
|
||||||
|
case "pay"://付款单
|
||||||
|
documentType="01";
|
||||||
|
break;
|
||||||
|
case "fundc"://资金归集
|
||||||
|
documentType="02";
|
||||||
|
break;
|
||||||
|
case "funda"://资金拨付
|
||||||
|
documentType="03";
|
||||||
|
break;
|
||||||
|
case "acc"://同名账户划转
|
||||||
|
documentType="04";
|
||||||
|
break;
|
||||||
|
case "loan"://借款单
|
||||||
|
documentType="05";
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
JSONArray jsonStrList = jsonObjectMain.getJSONArray("details");
|
||||||
|
if (null != jsonStrList && jsonStrList.size() > 0) {
|
||||||
|
for (Object seeyonEntity : jsonStrList) {
|
||||||
|
JSONObject jsonObjectFormson = JSON.parseObject(JSON.toJSONString(seeyonEntity));
|
||||||
|
String payerAccName = jsonObjectFormson.getString("payerAccName");//转出方账户名(付款账户)
|
||||||
|
String payerAccNo = jsonObjectFormson.getString("payerAccNo");//转出方账号(付款账号)
|
||||||
|
String curCode = jsonObjectFormson.getString("curCode");//付款方币种
|
||||||
|
String payeeAccName = jsonObjectFormson.getString("payeeAccName");//收款人帐户名称
|
||||||
|
String payeeAccNo = jsonObjectFormson.getString("payeeAccNo");//收款方账户号
|
||||||
|
BigDecimal amount = jsonObjectFormson.getBigDecimal("amount");//发生额
|
||||||
|
String payeeBankCode = jsonObjectFormson.getString("payeeBankCode");//联行号
|
||||||
|
String isQuick = jsonObjectFormson.getString("isQuick");//加急标志
|
||||||
|
String payType = jsonObjectFormson.getString("payType");//结算方式
|
||||||
|
String businessType = jsonObjectFormson.getString("businessType");//业务类别
|
||||||
|
stringBuffer.append("<map>\n");
|
||||||
|
stringBuffer.append("<documentType>" + nullConvert(documentType) + "</documentType>\n");
|
||||||
|
stringBuffer.append("<erpVoucherNo>" + nullConvert(erpVoucherNo) + "</erpVoucherNo>\n");
|
||||||
|
//stringBuffer.append("<payerAccName>"+"浙江杭泰数智能源开发有限公司"+"</payerAccName>\n");
|
||||||
|
stringBuffer.append("<payerAccName>"+nullConvert(payerAccName)+"</payerAccName>\n");
|
||||||
|
//stringBuffer.append("<payerAccNo>" +"71010122002702903"+ "</payerAccNo>\n");
|
||||||
|
stringBuffer.append("<payerAccNo>" + nullConvert(payerAccNo) + "</payerAccNo>\n");
|
||||||
|
stringBuffer.append("<curCode>" + nullConvert(curCode) + "</curCode>\n");
|
||||||
|
stringBuffer.append("<payeeAccName>" + nullConvert(payeeAccName) + "</payeeAccName>\n");
|
||||||
|
stringBuffer.append("<payeeAccNo>" + nullConvert(payeeAccNo) + "</payeeAccNo>\n");
|
||||||
|
stringBuffer.append("<amount>" + nullConvert(String.valueOf(amount)) + "</amount>\n");
|
||||||
|
//stringBuffer.append("<payeeBankCode>"+"301331000029"+"</payeeBankCode>\n");
|
||||||
|
stringBuffer.append("<payeeBankCode>"+nullConvert(payeeBankCode)+"</payeeBankCode>\n");
|
||||||
|
stringBuffer.append("<isQuick>" + nullConvert(isQuick) + "</isQuick>\n");
|
||||||
|
stringBuffer.append("<isForindividual>" + nullConvert(isForindividual) + "</isForindividual>\n");
|
||||||
|
stringBuffer.append("<payType>" + nullConvert(payType) + "</payType>\n");
|
||||||
|
stringBuffer.append("<purpose>" + nullConvert(purpose) + "</purpose>\n");
|
||||||
|
stringBuffer.append("<businessType>" + nullConvert(businessType) + "</businessType>\n");
|
||||||
|
stringBuffer.append("<debitByCustomer>" + nullConvert(jsonObjectFormson.getString("debitByCustomer")) + "</debitByCustomer>\n");//借方客商辅助核算编码
|
||||||
|
stringBuffer.append("<debitByBankAcc>" + nullConvert(payeeAccNo) + "</debitByBankAcc>\n");//借方银行账户辅助核算编码
|
||||||
|
stringBuffer.append("<debitByPersonnel>" + nullConvert(jsonObjectFormson.getString("debitByPersonnel")) + "</debitByPersonnel>\n");//借方人员辅助核算编码
|
||||||
|
stringBuffer.append("<creditByCustomer>" + nullConvert(jsonObjectFormson.getString("creditByCustomer")) + "</creditByCustomer>\n");//贷方客商辅助核算编码
|
||||||
|
stringBuffer.append("<creditByBankAcc>" + nullConvert(payerAccNo) + "</creditByBankAcc>\n");//贷方银行辅助核算编码
|
||||||
|
stringBuffer.append("</map>\n");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
stringBuffer.append("<map>\n");
|
||||||
|
stringBuffer.append("<erpVoucherNo>" + nullConvert(erpVoucherNo) + "</erpVoucherNo>");
|
||||||
|
stringBuffer.append("<purpose>" + nullConvert(purpose) + "</purpose>");
|
||||||
|
stringBuffer.append("<isForindividual>" + nullConvert(isForindividual) + "</isForindividual>");
|
||||||
|
stringBuffer.append("</map>\n");
|
||||||
|
}
|
||||||
|
String result=null;
|
||||||
|
String xml= requestXML(cfsToken,"BkPaymentMainExchange",stringBuffer,"OA付款单同步发送");
|
||||||
|
String url = "HTSZ_OA_BkPaymentMainWebService?wsdl";
|
||||||
|
switch (type){
|
||||||
|
case "pay"://付款单
|
||||||
|
logger.info("OA付款单发送CFS的请求参数为:{}", xml);
|
||||||
|
result = HttpRequest.post(CFSURL+url).header("Content-Type", "soap/xml").timeout(30000).body(xml).execute().body();
|
||||||
|
logger.info("OA付款单发送CFS的返回参数为:{}", result);
|
||||||
|
break;
|
||||||
|
case "fundc"://资金归集
|
||||||
|
logger.info("OA资金归集发送CFS的请求参数为:{}", xml);
|
||||||
|
result = HttpRequest.post(CFSURL+url).header("Content-Type", "soap/xml").timeout(30000).body(xml).execute().body();
|
||||||
|
logger.info("OA资金归集发送CFS的返回参数为:{}", result);
|
||||||
|
break;
|
||||||
|
case "funda"://资金调拨
|
||||||
|
logger.info("OA资金拨付发送CFS的请求参数为:{}", xml);
|
||||||
|
result = HttpRequest.post(CFSURL+url).header("Content-Type", "soap/xml").timeout(30000).body(xml).execute().body();
|
||||||
|
logger.info("OA资金拨付发送CFS的返回参数为:{}", result);
|
||||||
|
break;
|
||||||
|
case "acc"://同名账户划转
|
||||||
|
logger.info("OA同名账户划转发送CFS的请求参数为:{}", xml);
|
||||||
|
result = HttpRequest.post(CFSURL+url).header("Content-Type", "soap/xml").timeout(30000).body(xml).execute().body();
|
||||||
|
logger.info("OA同名账户划转发送CFS的返回参数为:{}", result);
|
||||||
|
break;
|
||||||
|
case "loan"://借款单
|
||||||
|
logger.info("OA借还款发送CFS的请求参数为:{}", xml);
|
||||||
|
result = HttpRequest.post(CFSURL+url).header("Content-Type", "soap/xml").timeout(30000).body(xml).execute().body();
|
||||||
|
logger.info("OA借还款发送CFS的返回参数为:{}", result);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return analyzeXML(result,"pay");
|
||||||
|
}else{
|
||||||
|
logger.info("请先登录CFS登录接口获取Token");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
logger.info("杭泰OA付款单传递CFS错误,原因为:{}", e.getMessage());
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @content 获取CFS登录校验码
|
||||||
|
* @Param
|
||||||
|
* @Return
|
||||||
|
* @Author hecan
|
||||||
|
* @Date 2023/10/13 15:38
|
||||||
|
* **/
|
||||||
|
public String sendCFSToken(String name,String password) {
|
||||||
|
try {
|
||||||
|
String xml="<soap:Envelope xmlns:soap=\"http://www.w3.org/2003/05/soap-envelope\" xmlns:mdm=\"http://mdmData.server.webservice.banck.com\">\n" +
|
||||||
|
" <soap:Header/>\n" +
|
||||||
|
" <soap:Body>\n" +
|
||||||
|
" <mdm:intoPaymentDataXml>\n" +
|
||||||
|
" <!--Optional:-->\n" +
|
||||||
|
" <mdm:xml>\n" +
|
||||||
|
" <![CDATA[\n" +
|
||||||
|
" <?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
|
||||||
|
"<message>\n" +
|
||||||
|
"<head>\n" +
|
||||||
|
"<transCode>LogOn</transCode>\n" +
|
||||||
|
"<erpTimestamp>"+DateUtil.dateToString(new Date(), "yyyy-MM-dd HH:mm:ss")+"</erpTimestamp>\n" +
|
||||||
|
"<sourcePlat>OA</sourcePlat>\n" +
|
||||||
|
"<desPlat>CFS</desPlat>\n" +
|
||||||
|
"<rmk>OA登录验证发送</rmk>\n" +
|
||||||
|
"</head>\n" +
|
||||||
|
"<body>\n" +
|
||||||
|
"<user>"+name+"</user>\n" +
|
||||||
|
"<password>"+password+"</password>\n" +
|
||||||
|
"</body>\n" +
|
||||||
|
"</message>\n" +
|
||||||
|
" ]]>\n" +
|
||||||
|
" </mdm:xml>\n" +
|
||||||
|
" </mdm:intoPaymentDataXml>\n" +
|
||||||
|
" </soap:Body>\n" +
|
||||||
|
"</soap:Envelope>";
|
||||||
|
logger.info("CFS登录的请求参数为:{}",xml);
|
||||||
|
String url="HTSZ_OA_LogOnWebService?wsdl";
|
||||||
|
String result = HttpRequest.post(CFSURL+url).header("Content-Type", "soap/xml").timeout(30000).body(xml).execute().body();
|
||||||
|
logger.info("CFS登录的返回参数为:{}",result);
|
||||||
|
return analyzeXML(result,"login");
|
||||||
|
}catch (Exception e){
|
||||||
|
e.printStackTrace();
|
||||||
|
logger.info("获取CFS登录失败,原因为:{}",e.getMessage());
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @content 获取杭泰OA报销单传递CFS
|
||||||
|
* @Param
|
||||||
|
* @Return
|
||||||
|
* @Author hecan
|
||||||
|
* @Date 2023/10/16 16:17
|
||||||
|
* **/
|
||||||
|
@Override
|
||||||
|
public String sendExpenseToCFS(JSONObject jsonStr) {
|
||||||
|
logger.info("开始执行杭泰OA报销单传递CFS");
|
||||||
|
try {
|
||||||
|
String token = sendCFSToken(NAME, PASSWORD);
|
||||||
|
if(null != token){
|
||||||
|
String jsonStrObj = jsonStr.getString("jsonStr");
|
||||||
|
JSONObject jsonObjectMain = JSON.parseObject(jsonStrObj);
|
||||||
|
String erpVoucherNo = jsonObjectMain.getString("erpVoucherNo");//OA主键
|
||||||
|
String purpose = jsonObjectMain.getString("purpose");//摘要
|
||||||
|
StringBuffer stringBuffer = new StringBuffer();
|
||||||
|
JSONArray jsonStrList = jsonObjectMain.getJSONArray("details");
|
||||||
|
if(null != jsonStrList && jsonStrList.size()>0){
|
||||||
|
for (Object o : jsonStrList) {
|
||||||
|
JSONObject jsonObjectDetails = JSON.parseObject(JSON.toJSONString(o));
|
||||||
|
String payerAccName = jsonObjectDetails.getString("payerAccName");//转出方账户名(付款账户)
|
||||||
|
String payerAccNo = jsonObjectDetails.getString("payerAccNo");//转出方账号(付款账号)
|
||||||
|
String curCode = jsonObjectDetails.getString("curCode");//付款方币种
|
||||||
|
String payeeAccName = jsonObjectDetails.getString("payeeAccName");//收款人帐户名称
|
||||||
|
String payeeAccNo = jsonObjectDetails.getString("payeeAccNo");//收款方账户号
|
||||||
|
BigDecimal amount = jsonObjectDetails.getBigDecimal("amount");//发生额
|
||||||
|
String payeeBankCode = jsonObjectDetails.getString("payeeBankCode");//联行号
|
||||||
|
String isQuick = jsonObjectDetails.getString("isQuick");//加急标志
|
||||||
|
String payType = jsonObjectDetails.getString("payType");//结算方式
|
||||||
|
stringBuffer.append("<map>\n");
|
||||||
|
stringBuffer.append("<erpVoucherNo>" + nullConvert(erpVoucherNo) + "</erpVoucherNo>\n");
|
||||||
|
stringBuffer.append("<payerAccName>" + nullConvert(payerAccName) + "</payerAccName>\n");
|
||||||
|
//stringBuffer.append("<payerAccName>"+"浙江杭泰数智能源开发有限公司"+"</payerAccName>\n");
|
||||||
|
stringBuffer.append("<payerAccNo>" + nullConvert(payerAccNo) + "</payerAccNo>\n");
|
||||||
|
//stringBuffer.append("<payerAccNo>" +"71010122002702903"+ "</payerAccNo>\n");
|
||||||
|
stringBuffer.append("<curCode>" + nullConvert(curCode) + "</curCode>\n");
|
||||||
|
stringBuffer.append("<payeeAccName>" + nullConvert(payeeAccName) + "</payeeAccName>\n");
|
||||||
|
stringBuffer.append("<payeeAccNo>" + nullConvert(payeeAccNo) + "</payeeAccNo>\n");
|
||||||
|
stringBuffer.append("<amount>" + nullConvert(String.valueOf(amount)) + "</amount>\n");
|
||||||
|
stringBuffer.append("<payeeBankCode>" + nullConvert(payeeBankCode) + "</payeeBankCode>\n");
|
||||||
|
//stringBuffer.append("<payeeBankCode>"+"301331000029"+"</payeeBankCode>\n");
|
||||||
|
stringBuffer.append("<isQuick>" + nullConvert(isQuick) + "</isQuick>\n");
|
||||||
|
stringBuffer.append("<payType>" + nullConvert(payType) + "</payType>\n");
|
||||||
|
stringBuffer.append("<purpose>" + nullConvert(purpose) + "</purpose>\n");
|
||||||
|
stringBuffer.append("</map>\n");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
stringBuffer.append("<map>\n");
|
||||||
|
stringBuffer.append("<erpVoucherNo>" + erpVoucherNo + "</erpVoucherNo>\n");
|
||||||
|
stringBuffer.append("<purpose>" + purpose + "</purpose>\n");
|
||||||
|
stringBuffer.append("</map>\n");
|
||||||
|
}
|
||||||
|
String xml= requestXML(token,"BkExpenseExchange",stringBuffer,"OA费用报销单同步发送");
|
||||||
|
logger.info("OA报销单发送CFS的请求参数为:{}", xml);
|
||||||
|
String url = "HTSZ_OA_BkExpenseWebService?wsdl";
|
||||||
|
String result = HttpRequest.post(CFSURL+url).header("Content-Type", "soap/xml").timeout(30000).body(xml).execute().body();
|
||||||
|
logger.info("OA报销单发送CFS的返回参数为:{}", result);
|
||||||
|
return analyzeXML(result,"pay");
|
||||||
|
}
|
||||||
|
}catch (Exception e){
|
||||||
|
logger.info("杭泰OA报销单传递CFS错误,原因为:{}", e.getMessage());
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
//null转成空字符串
|
||||||
|
private static String nullConvert(String str){
|
||||||
|
if (null == str){
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
|
||||||
|
private String requestXML(String token,String code,StringBuffer stringBuffer,String remark){
|
||||||
|
String xml = "<soap:Envelope xmlns:soap=\"http://www.w3.org/2003/05/soap-envelope\" xmlns:mdm=\"http://mdmData.server.webservice.banck.com\">\n" +
|
||||||
|
" <soap:Header/>\n" +
|
||||||
|
" <soap:Body>\n" +
|
||||||
|
" <mdm:intoPaymentDataXml>\n" +
|
||||||
|
" <!--Optional:-->\n" +
|
||||||
|
" <mdm:xml>\n" +
|
||||||
|
" <![CDATA[\n" +
|
||||||
|
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
|
||||||
|
"<message>\n" +
|
||||||
|
"<head>\n" +
|
||||||
|
"<transCode>" + code + "</transCode>\n" +
|
||||||
|
"<erpTimestamp>" + DateUtil.dateToString(new Date(), "yyyy-MM-dd HH:mm:ss") + "</erpTimestamp>\n" +
|
||||||
|
"<sourcePlat>OA</sourcePlat>\n" +
|
||||||
|
"<desPlat>CFS</desPlat>\n" +
|
||||||
|
"<rmk>" + remark + "</rmk>\n" +
|
||||||
|
"<sessionId>" + token + "</sessionId>\n" +
|
||||||
|
"</head>\n" +
|
||||||
|
"<body>\n" +
|
||||||
|
"<list>\n";
|
||||||
|
if (stringBuffer != null) {
|
||||||
|
xml += stringBuffer.toString();
|
||||||
|
xml += "</list>\n" +
|
||||||
|
"</body>\n" +
|
||||||
|
"</message>\n" +
|
||||||
|
" ]]>\n" +
|
||||||
|
" </mdm:xml>\n" +
|
||||||
|
" </mdm:intoPaymentDataXml>\n" +
|
||||||
|
" </soap:Body>\n" +
|
||||||
|
"</soap:Envelope>";
|
||||||
|
} else {
|
||||||
|
xml += "</list>\n" +
|
||||||
|
"</body>\n" +
|
||||||
|
"</message>\n" +
|
||||||
|
"]]>\n" +
|
||||||
|
" </mdm:xml>\n" +
|
||||||
|
" </mdm:intoPaymentDataXml>\n" +
|
||||||
|
" </soap:Body>\n" +
|
||||||
|
"</soap:Envelope>";
|
||||||
|
}
|
||||||
|
return xml;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @content 解析CFS返回的xml格式
|
||||||
|
* @Param
|
||||||
|
* @Return
|
||||||
|
* @Author hecan
|
||||||
|
* @Date 2023/10/19 14:07
|
||||||
|
* **/
|
||||||
|
private static String analyzeXML(String result,String type){
|
||||||
|
try {
|
||||||
|
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
|
||||||
|
DocumentBuilder builder = factory.newDocumentBuilder();
|
||||||
|
org.w3c.dom.Document document = builder.parse(new InputSource(new StringReader(result)));
|
||||||
|
org.w3c.dom.Element bodyElement = (org.w3c.dom.Element) document.getElementsByTagName("ns:return").item(0);
|
||||||
|
if (null!=bodyElement) {
|
||||||
|
String textContent = bodyElement.getTextContent();
|
||||||
|
Document documentContext = DocumentHelper.parseText(textContent);
|
||||||
|
Element rootElement = documentContext.getRootElement();
|
||||||
|
Element body = rootElement.element("body");
|
||||||
|
if (null != body) {
|
||||||
|
switch (type) {
|
||||||
|
case "login"://登录
|
||||||
|
Element sessionId = body.element("sessionId");
|
||||||
|
if (null != sessionId) {
|
||||||
|
logger.info("CFS登录的登录校验码为:{}", sessionId.getText());
|
||||||
|
return sessionId.getText();
|
||||||
|
} else {
|
||||||
|
logger.info("CFS登录的登录校验码没有获取到,请重新获取");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
case "pay"://付款单和报销单
|
||||||
|
Element list = body.element("list");
|
||||||
|
List<Element> elements = list.elements();
|
||||||
|
String serialNo = null;
|
||||||
|
String statusMsg = null;
|
||||||
|
String erpVoucherNoCfs = null;
|
||||||
|
for (Element element : elements) {
|
||||||
|
serialNo = element.element("serialNo").getText();
|
||||||
|
statusMsg = element.element("statusMsg").getText();
|
||||||
|
erpVoucherNoCfs = element.element("erpVoucherNo").getText();
|
||||||
|
}
|
||||||
|
JSONObject jsonObject=new JSONObject();
|
||||||
|
jsonObject.put("erpVoucherNoCfs",erpVoucherNoCfs);
|
||||||
|
jsonObject.put("statusMsg",statusMsg);
|
||||||
|
jsonObject.put("serialNo",serialNo);
|
||||||
|
//return "当前单据:" + erpVoucherNoCfs + ",传递CFS返回信息:" + statusMsg + ",流水号:" + serialNo;
|
||||||
|
return jsonObject.toJSONString();
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}catch (Exception e){
|
||||||
|
logger.info("解析CFS返回的xml格式错误:{}",e.getMessage());
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,194 @@
|
||||||
|
package com.hzya.frame.bip.v3.v2207.dps.task;
|
||||||
|
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import cn.hutool.http.HttpRequest;
|
||||||
|
import cn.hutool.http.HttpUtil;
|
||||||
|
import com.alibaba.fastjson.JSON;
|
||||||
|
import com.alibaba.fastjson.JSONArray;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.hzya.frame.bip.v3.v2207.dps.service.IPayMentService;
|
||||||
|
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.scheduling.annotation.EnableScheduling;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.io.File;
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
|
|
||||||
|
@EnableScheduling
|
||||||
|
@Component
|
||||||
|
public class ElectronicTask {
|
||||||
|
static Logger logger= LoggerFactory.getLogger(ElectronicTask.class);
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private IPayMentService payMentService;
|
||||||
|
//@Resource
|
||||||
|
//private ISeeYonDao seeYonDao;
|
||||||
|
//@Resource
|
||||||
|
//private ICtpAttachmentDao ctpAttachmentDao;
|
||||||
|
|
||||||
|
|
||||||
|
//@Scheduled(cron = "0 20 10 * * ?")
|
||||||
|
//public void sendElectronicToCFS() {
|
||||||
|
// logger.info("CFS电子回单共享开始执行---------->");
|
||||||
|
// try {
|
||||||
|
// String token = payMentService.sendCFSToken("admin", "aHRzejg4OA==");
|
||||||
|
// if(null!=token) {
|
||||||
|
// List<SeeyonEntity> seeyonEntities = seeYonDao.selectOAListByTypeformmain_0327(new SeeyonEntity());
|
||||||
|
// if (seeyonEntities != null && seeyonEntities.size() > 0) {
|
||||||
|
// for (SeeyonEntity seeyonEntity : seeyonEntities) {
|
||||||
|
// String bankAcc = seeyonEntity.getField0137();//付款账号
|
||||||
|
// //String bankAcc="03005389347";
|
||||||
|
// String erpVoucherNo = seeyonEntity.getId();//OA付款单号
|
||||||
|
// String xml = "<soap:Envelope xmlns:soap=\"http://www.w3.org/2003/05/soap-envelope\" xmlns:mdm=\"http://mdmData.server.webservice.banck.com\">\n" +
|
||||||
|
// " <soap:Header/>\n" +
|
||||||
|
// " <soap:Body>\n" +
|
||||||
|
// " <mdm:intoPaymentDataXml>\n" +
|
||||||
|
// " <!--Optional:-->\n" +
|
||||||
|
// " <mdm:xml>\n" +
|
||||||
|
// " <![CDATA[\n" +
|
||||||
|
// " <?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
|
||||||
|
// "<message>\n" +
|
||||||
|
// "<head>\n" +
|
||||||
|
// "<transCode>BkReceiptQueryExchange</transCode>\n" +
|
||||||
|
// "<erpTimestamp>" + DateUtil.dateToString(new Date(), "yyyy-mm-dd hh:mm:ss") + "</erpTimestamp>\n" +
|
||||||
|
// "<sourcePlat>CFS</sourcePlat>\n" +
|
||||||
|
// "<desPlat>OA</desPlat>\n" +
|
||||||
|
// "<rmk>OA电子回单共享发送</rmk>\n" +
|
||||||
|
// "<sessionId>" + token + "</sessionId>\n" +
|
||||||
|
// "</head>\n" +
|
||||||
|
// "<body>\n" +
|
||||||
|
// "<bankAcc>" + bankAcc + "</bankAcc>\n" +
|
||||||
|
// "<erpVoucherNo>" + erpVoucherNo + "</erpVoucherNo>\n" +
|
||||||
|
// "</body>\n" +
|
||||||
|
// "</message>\n" +
|
||||||
|
// " ]]>\n" +
|
||||||
|
// " </mdm:xml>\n" +
|
||||||
|
// " </mdm:intoPaymentDataXml>\n" +
|
||||||
|
// " </soap:Body>\n" +
|
||||||
|
// "</soap:Envelope>";
|
||||||
|
// logger.info("CFS电子回单共享请求参数为:{}", xml);
|
||||||
|
// String url = "http://101.132.140.208:26893/erp/services/HTSZ_OA_BkReceiptQueryWebService?wsdl";
|
||||||
|
// String result = HttpRequest.post(url).header("Content-Type", "soap/xml").timeout(30000).body(xml).execute().body();
|
||||||
|
// logger.info("CFS电子回单共享请求参数为:{}", result);
|
||||||
|
// DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
|
||||||
|
// DocumentBuilder builder = factory.newDocumentBuilder();
|
||||||
|
// org.w3c.dom.Document document = builder.parse(new InputSource(new StringReader(result)));
|
||||||
|
// org.w3c.dom.Element bodyElement = (org.w3c.dom.Element) document.getElementsByTagName("ns:return").item(0);
|
||||||
|
// if (null != bodyElement) {
|
||||||
|
// String textContent = bodyElement.getTextContent();
|
||||||
|
// Document documentContext = DocumentHelper.parseText(textContent);
|
||||||
|
// Element rootElement = documentContext.getRootElement();
|
||||||
|
// Element body = rootElement.element("body");
|
||||||
|
// if("0000".equalsIgnoreCase(rootElement.element("head").element("returnCode").getText())){
|
||||||
|
// if (null != body) {
|
||||||
|
// Element listElc = body.element("list");
|
||||||
|
// List<Element> elementsElc = listElc.elements();
|
||||||
|
// for (Element element : elementsElc) {
|
||||||
|
// String fielPath = element.element("filePath").getText();//电子回单附件路径
|
||||||
|
// if (fielPath != null && fielPath!="") {
|
||||||
|
// // String fielPath="C:\\Users\\笃曙\\Desktop\\15HZ000342CIBN2023091100066856211000001.pdf";
|
||||||
|
// File file = new File(fielPath);
|
||||||
|
// JSONObject jsonObject = fileUpload(file);
|
||||||
|
// logger.info("上传返回的附件id为:{}", jsonObject.getString("fileUrl"));
|
||||||
|
// if (jsonObject.getString("fileUrl") != null) {
|
||||||
|
// //表单的附件字段=ctpAttachment的Sub_reference,表单的Summary_id=ctpAttachment的att_reference
|
||||||
|
// String sub_reference = String.valueOf(UUIDLong.longUUID());
|
||||||
|
// seeyonEntity.setField0264(sub_reference);
|
||||||
|
// seeYonDao.updateFormformmain_0327(seeyonEntity);
|
||||||
|
// //根据附件id查询附件业务数据
|
||||||
|
// String file_url = jsonObject.getString("fileUrl");
|
||||||
|
// CtpAttachmentEntity ctpAttachmentEntity = new CtpAttachmentEntity();
|
||||||
|
// ctpAttachmentEntity.setFile_url(file_url);
|
||||||
|
// String att_reference = seeyonEntity.getSummary_id();//Summary_id
|
||||||
|
// ctpAttachmentEntity.setSub_reference(sub_reference);
|
||||||
|
// ctpAttachmentEntity.setAtt_reference(att_reference);
|
||||||
|
// List<CtpAttachmentEntity> ctpAttachmentEntities = ctpAttachmentDao.queryCtpAttachment(ctpAttachmentEntity);
|
||||||
|
// //如果没有查询到数据,就新增附件业务,否则更新
|
||||||
|
// if (ctpAttachmentEntities.size() == 0) {
|
||||||
|
// String category = jsonObject.getString("category");
|
||||||
|
// String type = jsonObject.getString("type");
|
||||||
|
// String filename = jsonObject.getString("filename");
|
||||||
|
// String mime_type = jsonObject.getString("mimeType");
|
||||||
|
// String attachment_size = jsonObject.getString("size");
|
||||||
|
// String id = String.valueOf(UUIDLong.longUUID());
|
||||||
|
// ctpAttachmentEntity.setCategory(category);
|
||||||
|
// ctpAttachmentEntity.setFilename(filename);
|
||||||
|
// ctpAttachmentEntity.setType(type);
|
||||||
|
// ctpAttachmentEntity.setMime_type(mime_type);
|
||||||
|
// ctpAttachmentEntity.setAttachment_size(attachment_size);
|
||||||
|
// ctpAttachmentEntity.setId(id);
|
||||||
|
// ctpAttachmentEntity.setCategory("66");
|
||||||
|
// ctpAttachmentEntity.setCreatedate(new Date());
|
||||||
|
// ctpAttachmentDao.saveCtpAttachment(ctpAttachmentEntity);
|
||||||
|
// } else {
|
||||||
|
// if (ctpAttachmentEntities.size() > 1) {
|
||||||
|
// throw new BaseSystemException("OA附件业务表中查到多条记录");
|
||||||
|
// }
|
||||||
|
// //更新数据到OA附件业务表中
|
||||||
|
// ctpAttachmentDao.updateCtpAttachment(ctpAttachmentEntity);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }else{
|
||||||
|
// logger.info("CFS电子回单返回得错误编码:{},以及返回的错误信息:{}",rootElement.element("head").element("returnCode").getText(),rootElement.element("head").element("returnMsg").getText());
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }catch (Exception e){
|
||||||
|
// logger.info("CFS电子回单共享错误:{}",e.getMessage());
|
||||||
|
// }
|
||||||
|
//}
|
||||||
|
|
||||||
|
|
||||||
|
public static JSONObject fileUpload(File file) {
|
||||||
|
if (null != file) {
|
||||||
|
try {
|
||||||
|
HashMap<String, Object> paramMap = new HashMap<>();
|
||||||
|
paramMap.put("file", file);
|
||||||
|
String url = "/seeyon/rest/attachment?token=@token@";//如果后面加上applicationCategory=1&extensions=&firstSave=true,附件业务自动生成一条记录
|
||||||
|
url = url.replaceAll("@token@", getToken());
|
||||||
|
String result = HttpUtil.post("http://60.204.152.210" + url, paramMap);
|
||||||
|
if (StrUtil.isNotBlank(result)) {
|
||||||
|
logger.info("附件上传结果"+result);
|
||||||
|
JSONObject jsonObject = JSONObject.parseObject(result);
|
||||||
|
String atts = jsonObject.get("atts").toString();
|
||||||
|
if (StrUtil.isNotEmpty(atts)) {
|
||||||
|
JSONArray jsonArray = JSONArray.parseArray(atts);
|
||||||
|
JSONObject res = (JSONObject) jsonArray.get(0);
|
||||||
|
/* String fileUrl = res.getString("fileUrl");
|
||||||
|
logger.info("附件id:" + fileUrl);
|
||||||
|
return fileUrl;*/
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}catch (Exception e){
|
||||||
|
logger.error("附件上传失败"+e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static String getToken() {
|
||||||
|
//获取oatoken
|
||||||
|
HashMap<String, String> hashMap = new HashMap<>();
|
||||||
|
hashMap.put("userName", "hzyaRest");
|
||||||
|
hashMap.put("password", "a5ce21b8-91db-4cec-b3e3-3e44719655fd");
|
||||||
|
hashMap.put("loginName","bdmanager");
|
||||||
|
String result = HttpUtil.post("http://60.204.152.210" + "/seeyon/rest/token", JSON.toJSONString(hashMap));
|
||||||
|
JSONObject jsonObject = JSONObject.parseObject(result);
|
||||||
|
if (null != jsonObject) {
|
||||||
|
logger.info(result);
|
||||||
|
logger.info("======token:{}======" + jsonObject.getString("id"));
|
||||||
|
return jsonObject.getString("id");
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,65 @@
|
||||||
|
package com.hzya.frame.bip.v3.v2207.entity;
|
||||||
|
|
||||||
|
import com.hzya.frame.web.entity.BaseEntity;
|
||||||
|
|
||||||
|
/****
|
||||||
|
* BIP组织账户
|
||||||
|
* @content:
|
||||||
|
* @author 👻👻👻👻👻👻👻👻 gjh
|
||||||
|
* @date 2023-10-24 10:03
|
||||||
|
* @param
|
||||||
|
* @return
|
||||||
|
**/
|
||||||
|
public class BipOrgsDetailsEntity extends BaseEntity {
|
||||||
|
|
||||||
|
/*开户行编码*/
|
||||||
|
private String bankCode;
|
||||||
|
/*开户行名称*/
|
||||||
|
private String bankName;
|
||||||
|
/*账户*/
|
||||||
|
private String accnum;
|
||||||
|
/*与组织关联的字段*/
|
||||||
|
private String controlorg;
|
||||||
|
/*联行号*/
|
||||||
|
private String cnapsCode;
|
||||||
|
|
||||||
|
public String getCnapsCode() {
|
||||||
|
return cnapsCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCnapsCode(String cnapsCode) {
|
||||||
|
this.cnapsCode = cnapsCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getControlorg() {
|
||||||
|
return controlorg;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setControlorg(String controlorg) {
|
||||||
|
this.controlorg = controlorg;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getBankCode() {
|
||||||
|
return bankCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBankCode(String bankCode) {
|
||||||
|
this.bankCode = bankCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getBankName() {
|
||||||
|
return bankName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBankName(String bankName) {
|
||||||
|
this.bankName = bankName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAccnum() {
|
||||||
|
return accnum;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAccnum(String accnum) {
|
||||||
|
this.accnum = accnum;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,43 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.hzya.frame.bip.v3.v2207.dao.impl.BipOrgsDetailsDaoImpl">
|
||||||
|
<resultMap id="get-BipOrgsDetailsEntity-result" type="com.hzya.frame.bip.v3.v2207.entity.BipOrgsDetailsEntity">
|
||||||
|
<result property="bankCode" column="bankCode" />
|
||||||
|
<result property="bankName" column="bankName" />
|
||||||
|
<result property="accnum" column="accnum" />
|
||||||
|
<result property="controlorg" column="controlorg" />
|
||||||
|
<result property="cnapsCode" column="cnapsCode" />
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
|
|
||||||
|
<sql id="BipOrgsDetailsEntity_Base_Column_List">
|
||||||
|
bankdoc.code as bankCode,bankdoc.name as bankName,bankaccbas.accnum,bankaccbas.controlorg,bankaccbas.combinenum as cnapsCode
|
||||||
|
</sql>
|
||||||
|
|
||||||
|
<!--通过ID获取数据 -->
|
||||||
|
<select id="entity_get" resultMap="get-BipOrgsDetailsEntity-result">
|
||||||
|
select
|
||||||
|
<include refid="BipOrgsDetailsEntity_Base_Column_List" />
|
||||||
|
from bd_bankaccbas where pk_bankaccbas = #{pk_bankaccbas}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- 查询 采用==查询 -->
|
||||||
|
<select id="thirdInterfaceGetOrgsDetails" resultMap="get-BipOrgsDetailsEntity-result" parameterType="com.hzya.frame.bip.v3.v2207.entity.BipOrgsDetailsEntity">
|
||||||
|
select
|
||||||
|
<include refid="BipOrgsDetailsEntity_Base_Column_List" />
|
||||||
|
from bd_bankaccbas bankaccbas
|
||||||
|
left join bd_bankdoc bankdoc on bankdoc.pk_bankdoc=bankaccbas.pk_bankdoc
|
||||||
|
<trim prefix="where" prefixOverrides="and">
|
||||||
|
<if test="bankCode != null and bankCode !=''">bankdoc.code=#{bankCode}</if>
|
||||||
|
<if test="bankName != null and bankName !='' "> and bankdoc.name = #{bankName}</if>
|
||||||
|
<if test="accnum != null and accnum !='' "> and bankaccbas.accnum = #{accnum}</if>
|
||||||
|
and bankaccbas.dr='0' and bankdoc.dr='0' and bankaccbas.pk_banktype!='0001Z01000000000036S' and bankaccbas.controlorg = #{controlorg}
|
||||||
|
</trim>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</mapper>
|
||||||
|
|
|
@ -0,0 +1,63 @@
|
||||||
|
package com.hzya.frame.bip.v3.v2207.entity;
|
||||||
|
|
||||||
|
import com.hzya.frame.web.entity.BaseEntity;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description: BIP组织 entity
|
||||||
|
* @tableName: org_orgs
|
||||||
|
* @entityName: BipOrgsEntity
|
||||||
|
* @author: gjh
|
||||||
|
* @history: 1.0
|
||||||
|
*/
|
||||||
|
public class BipOrgsEntity extends BaseEntity {
|
||||||
|
/*单位编码*/
|
||||||
|
private String code;
|
||||||
|
/*开户单位*/
|
||||||
|
private String name;
|
||||||
|
/*BIPID*/
|
||||||
|
private String tripartiteId;
|
||||||
|
private String pk_financeorg;
|
||||||
|
private String orgsts;
|
||||||
|
|
||||||
|
public String getOrgsts() {
|
||||||
|
return orgsts;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOrgsts(String orgsts) {
|
||||||
|
this.orgsts = orgsts;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPk_financeorg() {
|
||||||
|
return pk_financeorg;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPk_financeorg(String pk_financeorg) {
|
||||||
|
this.pk_financeorg = pk_financeorg;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCode() {
|
||||||
|
return code;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCode(String code) {
|
||||||
|
this.code = code;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTripartiteId() {
|
||||||
|
return tripartiteId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTripartiteId(String tripartiteId) {
|
||||||
|
this.tripartiteId = tripartiteId;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,98 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.hzya.frame.bip.v3.v2207.dao.impl.BipOrgsDaoImpl">
|
||||||
|
<resultMap id="get-BipOrgsEntity-result" type="com.hzya.frame.bip.v3.v2207.entity.BipOrgsEntity">
|
||||||
|
<result property="tripartiteId" column="tripartiteId" />
|
||||||
|
<result property="code" column="code" />
|
||||||
|
<result property="name" column="name" />
|
||||||
|
<result property="pk_financeorg" column="pk_financeorg"/>
|
||||||
|
<result property="orgsts" column="orgsts"/>
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
|
<sql id="BipOrgsEntity_Base_Column_List">
|
||||||
|
orgs.pk_financeorg as tripartiteId,
|
||||||
|
orgs.name ,
|
||||||
|
orgs.code,
|
||||||
|
max(org_bank.ts)as ts
|
||||||
|
|
||||||
|
</sql>
|
||||||
|
|
||||||
|
<sql id="BipOrgsEntity_Base_Column_List_details">
|
||||||
|
bankdoc.code as bankCode,bankdoc.name as bankName,bankaccbas.accnum,bankaccbas.controlorg
|
||||||
|
</sql>
|
||||||
|
|
||||||
|
<!--通过ID获取数据 -->
|
||||||
|
<select id="entity_get" resultMap="get-BipOrgsEntity-result">
|
||||||
|
select
|
||||||
|
<include refid="BipOrgsEntity_Base_Column_List" />
|
||||||
|
from org_financeorg where pk_financeorg = #{pk_financeorg}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="thirdInterfaceGetOrgs" resultMap="get-BipOrgsEntity-result" parameterType="com.hzya.frame.bip.v3.v2207.entity.BipOrgsEntity">
|
||||||
|
select
|
||||||
|
<include refid="BipOrgsEntity_Base_Column_List" />
|
||||||
|
FROM
|
||||||
|
org_financeorg orgs
|
||||||
|
left join v_hzya_org_bank org_bank on org_bank.controlorg = orgs.pk_financeorg
|
||||||
|
|
||||||
|
<trim prefix="where" prefixOverrides="and">
|
||||||
|
<if test="code != null and code !=''"> orgs.code = #{code}</if>
|
||||||
|
<if test="name != null and name !='' "> and orgs.name = #{name}</if>
|
||||||
|
<if test="pk_financeorg != null and pk_financeorg !='' "> and orgs.pk_financeorg = #{tripartiteId}</if>
|
||||||
|
<if test="orgsts != null and orgsts !='' "> and orgs.ts >'2023-09-30 14:18:39' and orgs.ts > #{orgsts}</if>
|
||||||
|
and orgs.dr='0'
|
||||||
|
</trim>
|
||||||
|
GROUP BY orgs.pk_financeorg ,orgs.name,orgs.code
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<!-- 查询 采用==查询 -->
|
||||||
|
<select id="thirdInterfaceGetSupplierDetails" resultMap="get-BipOrgsEntity-result" parameterType="com.hzya.frame.bip.v3.v2207.entity.BipOrgsEntity">
|
||||||
|
select
|
||||||
|
<include refid="BipOrgsEntity_Base_Column_List_details" />
|
||||||
|
from bd_bankaccbas bankaccbas
|
||||||
|
left join bd_bankdoc bankdoc on bankdoc.pk_bankdoc=bankaccbas.pk_bankdoc
|
||||||
|
<trim prefix="where" prefixOverrides="and">
|
||||||
|
<if test="code != null and code !=''">bankdoc.code=#{code}</if>
|
||||||
|
<if test="name != null and name !='' "> and bankdoc.name = #{name}</if>
|
||||||
|
<if test="accnum != null and accnum !='' "> and bankaccbas.accnum = #{accnum}</if>
|
||||||
|
<if test="controlorg != null and controlorg !='' "> and bankaccbas.controlorg = #{controlorg}</if>
|
||||||
|
and bankaccbas.dr='0' and bankdoc.dr='0' and bankaccbas.pk_banktype!='0001Z01000000000036S'
|
||||||
|
</trim>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- 查询 采用==查询 -->
|
||||||
|
<!--<select id="BipOrgsEntity_list_base" resultMap="get-BipOrgsEntity-result" parameterType="com.hzya.frame.bip.v3.v2207.entity.BipOrgsEntity">
|
||||||
|
select
|
||||||
|
<include refid="BipOrgsEntity_Base_Column_List" />
|
||||||
|
FROM bd_cust_supplier supplier
|
||||||
|
left join db_customerbank bank ON supplier.code = bank.code
|
||||||
|
<trim prefix="where" prefixOverrides="and">
|
||||||
|
<if test="code != null and code !=''">supplier.code=#{code}</if>
|
||||||
|
<if test="name != null and name !='' "> and supplier.name = #{name}</if>
|
||||||
|
<if test="taxpayerid != null and taxpayerid !='' "> and supplier.taxpayerid = #{taxpayerid}</if>
|
||||||
|
<if test="def1 != null and def1 !='' "> and bank.def1 = #{def1}</if>
|
||||||
|
<if test="def2 != null and def2 !='' "> and bank.def2 = #{def2}</if>
|
||||||
|
<if test="def3 != null and def3 !='' "> and bank.def3 = #{def3}</if>
|
||||||
|
</trim>
|
||||||
|
</select>-->
|
||||||
|
|
||||||
|
|
||||||
|
<!-- 分页查询列表 采用like格式 -->
|
||||||
|
<!--<select id="entity_list_like" resultMap="get-BipOrgsEntity-result" parameterType="com.hzya.frame.bip.v3.v2207.entity.BipOrgsEntity">
|
||||||
|
select
|
||||||
|
<include refid="BipOrgsEntity_Base_Column_List" />
|
||||||
|
FROM bd_cust_supplier supplier
|
||||||
|
left join db_customerbank bank ON supplier.code = bank.code
|
||||||
|
<trim prefix="where" prefixOverrides="and">
|
||||||
|
<if test="code != null and code !=''"> supplier.code like concat('%',#{code},'%')</if>
|
||||||
|
<if test="name != null and name !='' "> and supplier.name like concat('%',#{name},'%')</if>
|
||||||
|
<if test="taxpayerid != null and taxpayerid !='' "> and supplier.taxpayeridlike concat('%',#{taxpayeridlike},'%')</if>
|
||||||
|
<if test="def1 != null and def1 !='' "> and bank.def1 like concat('%',#{def1},'%')</if>
|
||||||
|
<if test="def2 != null and def2 !='' "> and bank.def2 like concat('%',#{def2},'%')</if>
|
||||||
|
<if test="def3 != null and def3 !='' "> and bank.def3 like concat('%',#{def3},'%')</if>
|
||||||
|
</trim>
|
||||||
|
</select>-->
|
||||||
|
|
||||||
|
</mapper>
|
||||||
|
|
|
@ -0,0 +1,77 @@
|
||||||
|
package com.hzya.frame.bip.v3.v2207.entity;
|
||||||
|
|
||||||
|
import com.hzya.frame.web.entity.BaseEntity;
|
||||||
|
|
||||||
|
public class BipSupplierDetailsEntity extends BaseEntity {
|
||||||
|
|
||||||
|
private String code;
|
||||||
|
private String name;
|
||||||
|
/*开户行*/
|
||||||
|
private String splitbank;
|
||||||
|
/*银行账号*/
|
||||||
|
private String bankaccno;
|
||||||
|
/*是否默认*/
|
||||||
|
private String isdefault;
|
||||||
|
/*联行号*/
|
||||||
|
private String combinno;
|
||||||
|
|
||||||
|
private String tripartiteId;
|
||||||
|
|
||||||
|
public String getCombinno() {
|
||||||
|
return combinno;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCombinno(String combinno) {
|
||||||
|
this.combinno = combinno;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTripartiteId() {
|
||||||
|
return tripartiteId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTripartiteId(String tripartiteId) {
|
||||||
|
this.tripartiteId = tripartiteId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getIsdefault() {
|
||||||
|
return isdefault;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setIsdefault(String isdefault) {
|
||||||
|
this.isdefault = isdefault;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCode() {
|
||||||
|
return code;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCode(String code) {
|
||||||
|
this.code = code;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getSplitbank() {
|
||||||
|
return splitbank;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSplitbank(String splitbank) {
|
||||||
|
this.splitbank = splitbank;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getBankaccno() {
|
||||||
|
return bankaccno;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBankaccno(String bankaccno) {
|
||||||
|
this.bankaccno = bankaccno;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,44 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.hzya.frame.bip.v3.v2207.dao.impl.BipSupplierDetailsDaoImpl">
|
||||||
|
<resultMap id="get-BipSupplierDetailsEntity-result" type="com.hzya.frame.bip.v3.v2207.entity.BipSupplierDetailsEntity">
|
||||||
|
<result property="code" column="code" />
|
||||||
|
<result property="name" column="name" />
|
||||||
|
<result property="splitbank" column="splitbank" />
|
||||||
|
<result property="bankaccno" column="bankaccno" />
|
||||||
|
<result property="tripartiteId" column="tripartiteId"></result>
|
||||||
|
<result property="combinno" column="combinno"></result>
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
|
|
||||||
|
<sql id="BipSupplierDetailsEntity_Base_Column_List">
|
||||||
|
splitbank,bankaccno,combinno,name,code
|
||||||
|
</sql>
|
||||||
|
|
||||||
|
<!--通过ID获取数据 -->
|
||||||
|
<select id="entity_get" resultMap="get-BipSupplierDetailsEntity-result">
|
||||||
|
select
|
||||||
|
<include refid="BipSupplierDetailsEntity_Base_Column_List" />
|
||||||
|
from BD_SUPPLIER where pk_supplier = #{pk_supplier} and sdr='0'
|
||||||
|
</select>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- 查询 采用==查询 -->
|
||||||
|
<select id="thirdInterfaceGetSupplierDetails" resultMap="get-BipSupplierDetailsEntity-result" parameterType="com.hzya.frame.bip.v3.v2207.entity.BipSupplierDetailsEntity">
|
||||||
|
select
|
||||||
|
<include refid="BipSupplierDetailsEntity_Base_Column_List" />
|
||||||
|
FROM db_customerbank
|
||||||
|
<trim prefix="where" prefixOverrides="and">
|
||||||
|
<if test="code != null and code !=''">code=#{code}</if>
|
||||||
|
<if test="name != null and name !='' "> and name = #{name}</if>
|
||||||
|
<if test="bankaccno != null and bankaccno !='' "> and bankaccno = #{bankaccno}</if>
|
||||||
|
<if test="splitbank != null and splitbank !='' "> and splitbank = #{splitbank}</if>
|
||||||
|
<if test="combinno != null and combinno !='' "> and combinno = #{combinno}</if>
|
||||||
|
</trim>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</mapper>
|
||||||
|
|
|
@ -0,0 +1,92 @@
|
||||||
|
package com.hzya.frame.bip.v3.v2207.entity;
|
||||||
|
|
||||||
|
import com.hzya.frame.web.entity.BaseEntity;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description: BIP供应商 entity
|
||||||
|
* @tableName: BD_SUPPLIER
|
||||||
|
* @entityName: BipSupplierEntity
|
||||||
|
* @author: gjh
|
||||||
|
* @history: 1.0
|
||||||
|
*/
|
||||||
|
public class BipSupplierEntity extends BaseEntity {
|
||||||
|
|
||||||
|
private String code;
|
||||||
|
private String name;
|
||||||
|
/*税号*/
|
||||||
|
private String taxpayerid;
|
||||||
|
/*地址*/
|
||||||
|
private String def1;
|
||||||
|
/*电话*/
|
||||||
|
private String def2;
|
||||||
|
/*联系人*/
|
||||||
|
private String def3;
|
||||||
|
private String tripartiteId;
|
||||||
|
|
||||||
|
public String getTripartiteId() {
|
||||||
|
return tripartiteId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTripartiteId(String tripartiteId) {
|
||||||
|
this.tripartiteId = tripartiteId;
|
||||||
|
}
|
||||||
|
|
||||||
|
private String ts;
|
||||||
|
|
||||||
|
public String getTs() {
|
||||||
|
return ts;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTs(String ts) {
|
||||||
|
this.ts = ts;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCode() {
|
||||||
|
return code;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCode(String code) {
|
||||||
|
this.code = code;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTaxpayerid() {
|
||||||
|
return taxpayerid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTaxpayerid(String taxpayerid) {
|
||||||
|
this.taxpayerid = taxpayerid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDef1() {
|
||||||
|
return def1;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDef1(String def1) {
|
||||||
|
this.def1 = def1;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDef2() {
|
||||||
|
return def2;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDef2(String def2) {
|
||||||
|
this.def2 = def2;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDef3() {
|
||||||
|
return def3;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDef3(String def3) {
|
||||||
|
this.def3 = def3;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,96 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.hzya.frame.bip.v3.v2207.dao.impl.BipSupplierDaoImpl">
|
||||||
|
<resultMap id="get-BipSupplierEntity-result" type="com.hzya.frame.bip.v3.v2207.entity.BipSupplierEntity">
|
||||||
|
<result property="taxpayerid" column="taxpayerid" />
|
||||||
|
<result property="def1" column="def1" />
|
||||||
|
<result property="def2" column="def2" />
|
||||||
|
<result property="def3" column="def3" />
|
||||||
|
<result property="code" column="code" />
|
||||||
|
<result property="name" column="name" />
|
||||||
|
<result property="ts" column="ts" />
|
||||||
|
<result property="tripartiteId" column="tripartiteId" />
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
|
<sql id="BipSupplierEntity_Base_Column_List">
|
||||||
|
supplier.code,supplier.name,supplier.taxpayerid,bank.def1,bank.def2,bank.def3,supplier.ts, supplier.pk_cust_sup as tripartiteId
|
||||||
|
</sql>
|
||||||
|
|
||||||
|
<sql id="BipSupplierEntity_Base_Column_List_details">
|
||||||
|
splitbank,bankaccno,name,code
|
||||||
|
</sql>
|
||||||
|
|
||||||
|
<!--通过ID获取数据 -->
|
||||||
|
<select id="entity_get" resultMap="get-BipSupplierEntity-result">
|
||||||
|
select
|
||||||
|
<include refid="BipSupplierEntity_Base_Column_List" />
|
||||||
|
from BD_SUPPLIER where pk_supplier = #{pk_supplier} and sdr='0'
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="thirdInterfaceGetSupplier" resultMap="get-BipSupplierEntity-result" parameterType="com.hzya.frame.bip.v3.v2207.entity.BipSupplierEntity">
|
||||||
|
select
|
||||||
|
<include refid="BipSupplierEntity_Base_Column_List" />
|
||||||
|
FROM bd_cust_supplier supplier
|
||||||
|
left join db_customerbank bank ON supplier.code = bank.code
|
||||||
|
<trim prefix="where" prefixOverrides="and">
|
||||||
|
<if test="code != null and code !=''">supplier.code=#{code}</if>
|
||||||
|
<if test="name != null and name !='' "> and supplier.name = #{name}</if>
|
||||||
|
<if test="taxpayerid != null and taxpayerid !='' "> and supplier.taxpayerid = #{taxpayerid}</if>
|
||||||
|
<if test="def1 != null and def1 !='' "> and bank.def1 = #{def1}</if>
|
||||||
|
<if test="def2 != null and def2 !='' "> and bank.def2 = #{def2}</if>
|
||||||
|
<if test="def3 != null and def3 !='' "> and bank.def3 = #{def3}</if>
|
||||||
|
<if test="tripartiteId != null and tripartiteId !='' "> and supplier.tripartiteId = #{tripartiteId}</if>
|
||||||
|
<if test="ts != null and ts !='' "> and supplier.ts >'2023-09-30 14:18:39' and supplier.ts > #{ts} </if>
|
||||||
|
</trim>
|
||||||
|
group by supplier.code,supplier.name,supplier.taxpayerid,bank.def1,bank.def2,bank.def3,supplier.ts, supplier.pk_cust_sup
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<!-- 查询 采用==查询 -->
|
||||||
|
<select id="thirdInterfaceGetSupplierDetails" resultMap="get-BipSupplierEntity-result" parameterType="com.hzya.frame.bip.v3.v2207.entity.BipSupplierEntity">
|
||||||
|
select
|
||||||
|
<include refid="BipSupplierEntity_Base_Column_List_details" />
|
||||||
|
FROM db_customerbank
|
||||||
|
<trim prefix="where" prefixOverrides="and">
|
||||||
|
<if test="code != null and code !=''">code=#{code}</if>
|
||||||
|
<if test="name != null and name !='' "> and name = #{name}</if>
|
||||||
|
<if test="bankaccno != null and bankaccno !='' "> and bankaccno = #{bankaccno}</if>
|
||||||
|
<if test="splitbank != null and splitbank !='' "> and splitbank = #{splitbank}</if>
|
||||||
|
</trim>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- 查询 采用==查询 -->
|
||||||
|
<select id="BipSupplierEntity_list_base" resultMap="get-BipSupplierEntity-result" parameterType="com.hzya.frame.bip.v3.v2207.entity.BipSupplierEntity">
|
||||||
|
select
|
||||||
|
<include refid="BipSupplierEntity_Base_Column_List" />
|
||||||
|
FROM bd_cust_supplier supplier
|
||||||
|
left join db_customerbank bank ON supplier.code = bank.code
|
||||||
|
<trim prefix="where" prefixOverrides="and">
|
||||||
|
<if test="code != null and code !=''">supplier.code=#{code}</if>
|
||||||
|
<if test="name != null and name !='' "> and supplier.name = #{name}</if>
|
||||||
|
<if test="taxpayerid != null and taxpayerid !='' "> and supplier.taxpayerid = #{taxpayerid}</if>
|
||||||
|
<if test="def1 != null and def1 !='' "> and bank.def1 = #{def1}</if>
|
||||||
|
<if test="def2 != null and def2 !='' "> and bank.def2 = #{def2}</if>
|
||||||
|
<if test="def3 != null and def3 !='' "> and bank.def3 = #{def3}</if>
|
||||||
|
</trim>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- 分页查询列表 采用like格式 -->
|
||||||
|
<select id="entity_list_like" resultMap="get-BipSupplierEntity-result" parameterType="com.hzya.frame.bip.v3.v2207.entity.BipSupplierEntity">
|
||||||
|
select
|
||||||
|
<include refid="BipSupplierEntity_Base_Column_List" />
|
||||||
|
FROM bd_cust_supplier supplier
|
||||||
|
left join db_customerbank bank ON supplier.code = bank.code
|
||||||
|
<trim prefix="where" prefixOverrides="and">
|
||||||
|
<if test="code != null and code !=''"> supplier.code like concat('%',#{code},'%')</if>
|
||||||
|
<if test="name != null and name !='' "> and supplier.name like concat('%',#{name},'%')</if>
|
||||||
|
<if test="taxpayerid != null and taxpayerid !='' "> and supplier.taxpayeridlike concat('%',#{taxpayeridlike},'%')</if>
|
||||||
|
<if test="def1 != null and def1 !='' "> and bank.def1 like concat('%',#{def1},'%')</if>
|
||||||
|
<if test="def2 != null and def2 !='' "> and bank.def2 like concat('%',#{def2},'%')</if>
|
||||||
|
<if test="def3 != null and def3 !='' "> and bank.def3 like concat('%',#{def3},'%')</if>
|
||||||
|
</trim>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
</mapper>
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
package com.hzya.frame.bip.v3.v2207.entity;
|
||||||
|
|
||||||
|
import com.hzya.frame.web.entity.BaseEntity;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* com.hzya.frame.bip.v3.v2207.entity
|
||||||
|
*
|
||||||
|
* @author makejava
|
||||||
|
* @date 2024-05 -27 11:24
|
||||||
|
*/
|
||||||
|
|
||||||
|
public class BipTokenVo extends BaseEntity {
|
||||||
|
}
|
|
@ -0,0 +1,31 @@
|
||||||
|
package com.hzya.frame.bip.v3.v2207.service;
|
||||||
|
|
||||||
|
|
||||||
|
import com.hzya.frame.basedao.service.IBaseService;
|
||||||
|
import com.hzya.frame.bip.v3.v2207.entity.BipTokenVo;
|
||||||
|
import com.hzya.frame.sysnew.application.entity.SysExtensionApiEntity;
|
||||||
|
import com.hzya.frame.web.entity.JsonResultEntity;
|
||||||
|
|
||||||
|
import javax.servlet.ServletRequest;
|
||||||
|
import javax.servlet.ServletResponse;
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
|
||||||
|
public interface IBipSsoService extends IBaseService<BipTokenVo,String>{
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @content Bip单点统一认证接口
|
||||||
|
* @author laborer
|
||||||
|
* @date 2024/5/30 0030 13:45
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
String erpSso(HttpServletRequest request, String ticket)throws Exception;
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @content 此方法获取sso动态加密,heade参数动态传入
|
||||||
|
* @author laborer
|
||||||
|
* @date 2024/5/27 0027 11:38
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
SysExtensionApiEntity ssoEncrypt(SysExtensionApiEntity entity);
|
||||||
|
}
|
|
@ -0,0 +1,18 @@
|
||||||
|
package com.hzya.frame.bip.v3.v2207.service;
|
||||||
|
|
||||||
|
|
||||||
|
import com.hzya.frame.basedao.service.IBaseService;
|
||||||
|
import com.hzya.frame.bip.v3.v2207.entity.BipTokenVo;
|
||||||
|
import com.hzya.frame.sysnew.application.entity.SysExtensionApiEntity;
|
||||||
|
|
||||||
|
public interface IBipV32207BillService extends IBaseService<BipTokenVo,String>{
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @content 此方法获取BIPtoken,heade参数动态传入
|
||||||
|
* @author laborer
|
||||||
|
* @date 2024/5/27 0027 11:38
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
SysExtensionApiEntity getBipBill(SysExtensionApiEntity entity);
|
||||||
|
}
|
|
@ -0,0 +1,49 @@
|
||||||
|
package com.hzya.frame.bip.v3.v2207.service;
|
||||||
|
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.baomidou.dynamic.datasource.annotation.DS;
|
||||||
|
import com.hzya.frame.basedao.service.IBaseService;
|
||||||
|
import com.hzya.frame.bip.v3.v2207.entity.BipSupplierEntity;
|
||||||
|
import com.hzya.frame.web.entity.JsonResultEntity;
|
||||||
|
|
||||||
|
public interface IBipV32207Service extends IBaseService<BipSupplierEntity,String>{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param jsonObject
|
||||||
|
* @return com.hzya.frame.web.entity.JsonResultEntity
|
||||||
|
* @Description 获取token
|
||||||
|
**/
|
||||||
|
JsonResultEntity thirdInterfaceGetToken(JSONObject jsonObject);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param jsonObject
|
||||||
|
* @return com.hzya.frame.web.entity.JsonResultEntity
|
||||||
|
* @Description 获取供应商
|
||||||
|
**/
|
||||||
|
@DS("oracle91")
|
||||||
|
JsonResultEntity thirdInterfaceGetSupplier(JSONObject jsonObject);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param jsonObject
|
||||||
|
* @return com.hzya.frame.web.entity.JsonResultEntity
|
||||||
|
* @Description 新增供应商
|
||||||
|
**/
|
||||||
|
JsonResultEntity thirdInterfaceSaveSupplier(JSONObject jsonObject);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 供应商传递OA
|
||||||
|
* @param jsonObject
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
JsonResultEntity thirdInterfaceSendOa(JSONObject jsonObject) throws Exception;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取BIP组织数据
|
||||||
|
* @param jsonObject
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
JsonResultEntity thirdInterfaceGetOrgs(JSONObject jsonObject);
|
||||||
|
}
|
|
@ -0,0 +1,22 @@
|
||||||
|
package com.hzya.frame.bip.v3.v2207.service;
|
||||||
|
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.baomidou.dynamic.datasource.annotation.DS;
|
||||||
|
import com.hzya.frame.basedao.service.IBaseService;
|
||||||
|
import com.hzya.frame.bip.v3.v2207.entity.BipSupplierEntity;
|
||||||
|
import com.hzya.frame.bip.v3.v2207.entity.BipTokenVo;
|
||||||
|
import com.hzya.frame.sysnew.application.entity.SysExtensionApiEntity;
|
||||||
|
import com.hzya.frame.web.entity.JsonResultEntity;
|
||||||
|
|
||||||
|
public interface IBipV32207TokenService extends IBaseService<BipTokenVo,String>{
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @content 此方法获取BIPtoken,heade参数动态传入
|
||||||
|
* @author laborer
|
||||||
|
* @date 2024/5/27 0027 11:38
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
SysExtensionApiEntity getBipToken(SysExtensionApiEntity entity);
|
||||||
|
}
|
|
@ -0,0 +1,114 @@
|
||||||
|
package com.hzya.frame.bip.v3.v2207.service.impl;
|
||||||
|
|
||||||
|
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import cn.hutool.http.HttpException;
|
||||||
|
import cn.hutool.http.HttpRequest;
|
||||||
|
import com.alibaba.fastjson.JSON;
|
||||||
|
import com.hzya.frame.basedao.service.impl.BaseService;
|
||||||
|
import com.hzya.frame.bip.v3.v2207.entity.BipTokenVo;
|
||||||
|
import com.hzya.frame.bip.v3.v2207.service.IBipSsoService;
|
||||||
|
import com.hzya.frame.iputil.IPUtil;
|
||||||
|
import com.hzya.frame.sysnew.application.entity.SysExtensionApiEntity;
|
||||||
|
import nccloud.security.impl.SignatureTookKit;
|
||||||
|
import org.apache.commons.codec.binary.Base64;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
|
||||||
|
@Service(value = "BipSsoServiceImpl")
|
||||||
|
public class BipSsoServiceImpl extends BaseService<BipTokenVo, String> implements IBipSsoService {
|
||||||
|
private final Logger logger = LoggerFactory.getLogger(this.getClass());
|
||||||
|
private final String BASEURL = "http://192.168.2.237:8099/seeyon/thirdpartyController.do?ticket=";
|
||||||
|
private final String ESBURL = "http://127.0.0.1:9081/kangarooDataCenterV3/entranceController/externalCallInterface";
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @content Bip单点统一认证接口
|
||||||
|
* @author laborer
|
||||||
|
* @date 2024/5/30 0030 13:45
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String erpSso(HttpServletRequest request,String userCode)throws Exception {
|
||||||
|
logger.info("当前IP地址为"+ JSON.toJSONString(IPUtil.getIpAddress(request)));
|
||||||
|
String result = "";
|
||||||
|
boolean flag = true;
|
||||||
|
// logger.info("接收到致远OA认证参数的ticket:{}",ticket);
|
||||||
|
//通过ticket获取OA用户信息
|
||||||
|
// String userCode = HttpUtil.get(BASEURL+ticket);
|
||||||
|
logger.info("获取到的OA用户信息:{}",userCode);
|
||||||
|
String dsname = "ycjf";
|
||||||
|
String client_id = "OAREST";//第三方系统id
|
||||||
|
StringBuffer sb = new StringBuffer();
|
||||||
|
if(StrUtil.isNotEmpty(userCode)){
|
||||||
|
try {
|
||||||
|
logger.info("开始加密");
|
||||||
|
String security = genKey(userCode,userCode + (System.currentTimeMillis() + "").substring(0, 6));
|
||||||
|
logger.info("加密结束:{}",security);
|
||||||
|
sb.append("type=type_security&dsname="+dsname+"&usercode="+userCode+"&client_id="+client_id+"&security="+security);
|
||||||
|
String baseUrl = "http://10.75.51.78:8899/service/genThirdPartyAccessToken?"+sb.toString();
|
||||||
|
logger.info("请求BIPtokenbaseUrl:{}",baseUrl);
|
||||||
|
result = HttpRequest.post(baseUrl)
|
||||||
|
.header("Content-Type", "application/x-www-form-urlencoded")//头信息,多个头信息多次调用此方法即可
|
||||||
|
.header("Content-Length", "10000")//头信息,多个头信息多次调用此方法即可
|
||||||
|
.header("userid", "admin")//头信息,多个头信息多次调用此方法即可
|
||||||
|
.body("{}")//表单内容
|
||||||
|
.timeout(20000)//超时,毫秒
|
||||||
|
.execute().body();
|
||||||
|
logger.info("获取到的BIPtoken信息:{}",result);
|
||||||
|
} catch (HttpException e) {
|
||||||
|
flag=false;
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(flag){
|
||||||
|
String indexUR = "http://10.75.51.78:8899/nccloud/resources/uap/rbac/thirdpartylogin/main/index.html?accesstoken="+result+"&redirect_uri=http://10.75.51.78:8899/nccloud/resources/workbench/public/common/main/index.html#";
|
||||||
|
logger.info(indexUR);
|
||||||
|
return indexUR;
|
||||||
|
}else{
|
||||||
|
return "http://10.75.51.78:8899/nccloud/resources/uap/rbac/login/main/index.html";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @content 此方法获取sso动态加密,heade参数动态传入
|
||||||
|
* @author laborer
|
||||||
|
* @date 2024/5/27 0027 11:38
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SysExtensionApiEntity ssoEncrypt(SysExtensionApiEntity entity) {
|
||||||
|
try {
|
||||||
|
Map<String, String> headers = entity.getHeaders();
|
||||||
|
String userCode = headers.get("usercode");//用户编码
|
||||||
|
String dsname = headers.get("dsname");//数据源
|
||||||
|
String client_id = headers.get("client_id");//第三方系统id
|
||||||
|
StringBuffer sb = new StringBuffer();
|
||||||
|
String security = genKey(userCode,userCode + (System.currentTimeMillis() + "").substring(0, 6));
|
||||||
|
StringBuffer querys = new StringBuffer();
|
||||||
|
querys.append("type=type_security");
|
||||||
|
querys.append("&dsname="+dsname);
|
||||||
|
querys.append("&usercode="+userCode);
|
||||||
|
querys.append("&client_id="+client_id);
|
||||||
|
querys.append("&security="+security);
|
||||||
|
entity.setQuerys(querys.toString());
|
||||||
|
headers.put("Content-Type", "application/x-www-form-urlencoded");
|
||||||
|
headers.put("userid", "admin");
|
||||||
|
entity.setHeaders(headers);
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return entity;
|
||||||
|
}
|
||||||
|
/**获取NCC的key*/
|
||||||
|
private static String genKey(String userid, String key) throws Exception {
|
||||||
|
return new Base64().encodeToString(SignatureTookKit.digestSign(userid.getBytes(), key.getBytes()));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,62 @@
|
||||||
|
package com.hzya.frame.bip.v3.v2207.service.impl;
|
||||||
|
|
||||||
|
|
||||||
|
import com.hzya.frame.basedao.service.impl.BaseService;
|
||||||
|
import com.hzya.frame.bip.v3.v2207.entity.BipTokenVo;
|
||||||
|
import com.hzya.frame.bip.v3.v2207.service.IBipV32207BillService;
|
||||||
|
import com.hzya.frame.bip.v3.v2207.service.IBipV32207TokenService;
|
||||||
|
import com.hzya.frame.sysnew.application.entity.SysExtensionApiEntity;
|
||||||
|
import com.hzya.frame.util.bipV3.Encryption;
|
||||||
|
import com.hzya.frame.util.bipV3.SHA256Util;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.net.URLEncoder;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
|
||||||
|
@Service(value = "BipV32207BillServiceImpl")
|
||||||
|
public class BipV32207BillServiceImpl extends BaseService<BipTokenVo, String> implements IBipV32207BillService {
|
||||||
|
private final Logger logger = LoggerFactory.getLogger(this.getClass());
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @content 此方法获取拼接单据动态加密,heade参数动态传入
|
||||||
|
* @author laborer
|
||||||
|
* @date 2024/5/27 0027 11:38
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SysExtensionApiEntity getBipBill(SysExtensionApiEntity entity) {
|
||||||
|
try {
|
||||||
|
Map<String, String> headers = entity.getHeaders();
|
||||||
|
String client_id = headers.get("client_id");
|
||||||
|
//token信息
|
||||||
|
String access_token = headers.get("access_token");
|
||||||
|
//公钥
|
||||||
|
String pubKey = headers.get("pubKey");
|
||||||
|
StringBuffer sb = new StringBuffer();
|
||||||
|
sb.append(client_id);
|
||||||
|
String parm = entity.getBodys();
|
||||||
|
if (StringUtils.isNotBlank(parm)) {
|
||||||
|
sb.append(parm);
|
||||||
|
}
|
||||||
|
sb.append(pubKey);
|
||||||
|
// 签名
|
||||||
|
String sign = SHA256Util.getSHA256(sb.toString(), pubKey);
|
||||||
|
StringBuffer querys = new StringBuffer();
|
||||||
|
querys.append("access_token="+access_token);
|
||||||
|
querys.append("&signature="+sign);
|
||||||
|
querys.append("&client_id="+client_id);
|
||||||
|
entity.setQuerys(querys.toString());
|
||||||
|
headers.put("signature",sign);
|
||||||
|
// headers.put("content-type","application/x-www-form-urlencoded");
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return entity;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,480 @@
|
||||||
|
package com.hzya.frame.bip.v3.v2207.service.impl;
|
||||||
|
|
||||||
|
|
||||||
|
import cn.hutool.http.HttpRequest;
|
||||||
|
import cn.hutool.json.JSONUtil;
|
||||||
|
import com.alibaba.fastjson.JSONArray;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.alibaba.fastjson2.JSON;
|
||||||
|
import com.baomidou.dynamic.datasource.annotation.DS;
|
||||||
|
import com.google.gson.Gson;
|
||||||
|
import com.hzya.frame.base.PluginBaseEntity;
|
||||||
|
import com.hzya.frame.basedao.service.impl.BaseService;
|
||||||
|
import com.hzya.frame.bip.v3.v2207.dao.IBipOrgsDao;
|
||||||
|
import com.hzya.frame.bip.v3.v2207.dao.IBipOrgsDetailsDao;
|
||||||
|
import com.hzya.frame.bip.v3.v2207.dao.IBipSupplierDao;
|
||||||
|
import com.hzya.frame.bip.v3.v2207.dao.IBipSupplierDetailsDao;
|
||||||
|
import com.hzya.frame.bip.v3.v2207.entity.BipOrgsDetailsEntity;
|
||||||
|
import com.hzya.frame.bip.v3.v2207.entity.BipOrgsEntity;
|
||||||
|
import com.hzya.frame.bip.v3.v2207.entity.BipSupplierDetailsEntity;
|
||||||
|
import com.hzya.frame.bip.v3.v2207.entity.BipSupplierEntity;
|
||||||
|
import com.hzya.frame.bip.v3.v2207.service.IBipV32207Service;
|
||||||
|
import com.hzya.frame.dateutil.DateUtil;
|
||||||
|
import com.hzya.frame.util.PluginUtils;
|
||||||
|
import com.hzya.frame.util.bipV3.Encryption;
|
||||||
|
import com.hzya.frame.util.bipV3.SHA256Util;
|
||||||
|
import com.hzya.frame.util.oldNcc.CompressUtil;
|
||||||
|
import com.hzya.frame.util.oldNcc.Decryption;
|
||||||
|
import com.hzya.frame.web.entity.BaseResult;
|
||||||
|
import com.hzya.frame.web.entity.JsonResultEntity;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
|
||||||
|
import java.net.URLEncoder;
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
|
||||||
|
@Service(value = "bipV32207Service")
|
||||||
|
public class BipV32207ServiceImpl extends BaseService<BipSupplierEntity, String> implements IBipV32207Service {
|
||||||
|
private final Logger logger = LoggerFactory.getLogger(this.getClass());
|
||||||
|
//定义项目开始同步日期
|
||||||
|
private String ts = "2023-09-30 15:47:08";
|
||||||
|
//组织的同步日期
|
||||||
|
private String orgsts = "2023-09-30 15:47:08";
|
||||||
|
@Autowired
|
||||||
|
private IBipSupplierDao bipSupplierDao;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IBipSupplierDetailsDao bipSupplierDetailsDao;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IBipOrgsDao bipOrgsDao;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IBipOrgsDetailsDao bipOrgsDetailsDao;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param object
|
||||||
|
* @return com.hzya.frame.web.entity.JsonResultEntity
|
||||||
|
* @Description 获取token
|
||||||
|
**/
|
||||||
|
@Override
|
||||||
|
public JsonResultEntity thirdInterfaceGetToken(JSONObject object) {
|
||||||
|
JSONObject jsonObject = getstrObj("jsonStr", object);
|
||||||
|
String client_id = jsonObject.getString("client_id");
|
||||||
|
String pubKey = jsonObject.getString("pubKey");
|
||||||
|
String client_secret = jsonObject.getString("client_secret");
|
||||||
|
String username = jsonObject.getString("username");
|
||||||
|
String pwd = jsonObject.getString("pwd");
|
||||||
|
String busi_center = jsonObject.getString("busi_center");
|
||||||
|
String dsname = jsonObject.getString("dsname");
|
||||||
|
String baseUrl = jsonObject.getString("baseUrl");
|
||||||
|
Map<String, String> paramMap = new HashMap<String, String>();
|
||||||
|
// 密码模式认证
|
||||||
|
paramMap.put("grant_type", "password");
|
||||||
|
// 第三方应用id
|
||||||
|
paramMap.put("client_id", client_id);
|
||||||
|
// 第三方应用secret 公钥加密
|
||||||
|
try {
|
||||||
|
paramMap.put("client_secret", URLEncoder.encode(Encryption.pubEncrypt(pubKey, client_secret), "utf-8"));
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
// ncc用户名
|
||||||
|
paramMap.put("username", username);
|
||||||
|
// 密码 公钥加密
|
||||||
|
try {
|
||||||
|
paramMap.put("password", URLEncoder.encode(Encryption.pubEncrypt(pubKey, pwd), "utf-8"));
|
||||||
|
} catch (Exception e) {
|
||||||
|
return BaseResult.getFailureMessageEntity("获取token失败");
|
||||||
|
}
|
||||||
|
// 账套编码
|
||||||
|
paramMap.put("biz_center", busi_center);
|
||||||
|
// 签名
|
||||||
|
String sign = SHA256Util.getSHA256(client_id + client_secret + username + pwd + pubKey, pubKey);
|
||||||
|
paramMap.put("signature", sign);
|
||||||
|
paramMap.put("dsname", dsname);
|
||||||
|
String url = baseUrl + "/nccloud/opm/accesstoken";
|
||||||
|
String mediaType = "application/x-www-form-urlencoded";
|
||||||
|
String token = null;
|
||||||
|
try {
|
||||||
|
token = doPostHutool(url, paramMap, mediaType, null, "", "token");
|
||||||
|
} catch (Exception e) {
|
||||||
|
return BaseResult.getFailureMessageEntity("获取token失败");
|
||||||
|
}
|
||||||
|
if (JSONUtil.isTypeJSON(token)) {
|
||||||
|
JSONObject jsonObject1 = JSONObject.parseObject(token);
|
||||||
|
return BaseResult.getSuccessMessageEntity("获取token成功", jsonObject1);
|
||||||
|
} else {
|
||||||
|
return BaseResult.getSuccessMessageEntity("获取token成功", token);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 发送post请求
|
||||||
|
*
|
||||||
|
* @param baseUrl
|
||||||
|
* @param paramMap
|
||||||
|
* @param mediaType
|
||||||
|
* @param headers
|
||||||
|
* @param json
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private String doPostHutool(String baseUrl, Map<String, String> paramMap, String mediaType, Map<String, String> headers, String json, String type) {
|
||||||
|
String result = null;
|
||||||
|
|
||||||
|
try {
|
||||||
|
StringBuffer sb = new StringBuffer();
|
||||||
|
sb.append(baseUrl);
|
||||||
|
if (paramMap != null) {
|
||||||
|
sb.append("?");
|
||||||
|
for (Map.Entry<String, String> entry : paramMap.entrySet()) {
|
||||||
|
String key = entry.getKey();
|
||||||
|
String value = entry.getValue();
|
||||||
|
sb.append(key + "=" + value).append("&");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ("bill".equals(type)) {
|
||||||
|
sb.append("?");
|
||||||
|
for (Map.Entry<String, String> entry : headers.entrySet()) {
|
||||||
|
String key = entry.getKey();
|
||||||
|
String value = entry.getValue();
|
||||||
|
sb.append(key + "=" + value).append("&");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
baseUrl = sb.toString().substring(0, sb.toString().length() - 1);
|
||||||
|
HttpRequest re = HttpRequest.post(baseUrl);
|
||||||
|
re.addHeaders(headers);
|
||||||
|
result = re.body(json)
|
||||||
|
.timeout(2000000)//超时,毫秒
|
||||||
|
.execute().body();
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param key
|
||||||
|
* @param object
|
||||||
|
* @return com.alibaba.fastjson.JSONObject
|
||||||
|
* @Author lvleigang
|
||||||
|
* @Description 获取对象转换成jsonobj
|
||||||
|
* @Date 11:51 下午 2023/7/10
|
||||||
|
**/
|
||||||
|
public JSONObject getstrObj(String key, JSONObject object) {
|
||||||
|
if (checkStr(object.getString(key))) {
|
||||||
|
return object.getJSONObject(key);
|
||||||
|
}
|
||||||
|
return new JSONObject();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param str
|
||||||
|
* @return void
|
||||||
|
* @Author lvleigang
|
||||||
|
* @Description 校验字符串
|
||||||
|
* @Date 11:41 上午 2022/12/7
|
||||||
|
**/
|
||||||
|
protected Boolean checkStr(String str) {
|
||||||
|
Boolean flag = true;
|
||||||
|
if (str == null || "".equals(str)) {
|
||||||
|
flag = false;
|
||||||
|
}
|
||||||
|
return flag;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param jsonObject
|
||||||
|
* @return com.hzya.frame.web.entity.JsonResultEntity
|
||||||
|
* @Description 获取供应商
|
||||||
|
**/
|
||||||
|
@Override
|
||||||
|
public JsonResultEntity thirdInterfaceGetSupplier(JSONObject jsonObject) {
|
||||||
|
BipSupplierEntity bipSupplierEntity = getData("jsonStr", jsonObject, BipSupplierEntity.class);
|
||||||
|
//设置查询区间
|
||||||
|
bipSupplierEntity.setTs(ts);
|
||||||
|
logger.info("查询供应商数据,当前TS:"+ts);
|
||||||
|
List<BipSupplierEntity> bipSupplierEntities = bipSupplierDao.thirdInterfaceGetSupplier(bipSupplierEntity);
|
||||||
|
//更新TS时间
|
||||||
|
ts = DateUtil.dateToString(new Date(),"yyyy-MM-dd HH:mm:ss");
|
||||||
|
logger.info("TS已更新:"+ts);
|
||||||
|
//System.out.println("查询供应商明细");
|
||||||
|
logger.info("查询供应商明细"+JSON.toJSONString(bipSupplierEntities));
|
||||||
|
List<JSONObject> jsonObjectList=new ArrayList<>();
|
||||||
|
//[{"code":"SL20231101727","dataSourceCode":"master","name":"无锡恒君安管理咨询有限公司","taxpayerid":"91320205MAD2HAQN6Q","tripartiteId":"0001A31000000002M3TS","ts":"2023-11-16 14:05:10"}]
|
||||||
|
|
||||||
|
List<BipSupplierDetailsEntity> bipSupplierDetails = null;
|
||||||
|
for (BipSupplierEntity supplierEntity : bipSupplierEntities) {
|
||||||
|
List<JSONObject> list=new ArrayList<>();
|
||||||
|
JSONObject jsonObjectResult=new JSONObject();
|
||||||
|
jsonObjectResult.put("code",supplierEntity.getCode());
|
||||||
|
jsonObjectResult.put("name",supplierEntity.getName());
|
||||||
|
jsonObjectResult.put("taxpayerid",supplierEntity.getTaxpayerid());
|
||||||
|
jsonObjectResult.put("def1",supplierEntity.getDef1());
|
||||||
|
jsonObjectResult.put("def2",supplierEntity.getDef2());
|
||||||
|
jsonObjectResult.put("def3",supplierEntity.getDef3());
|
||||||
|
jsonObjectResult.put("tripartiteId",supplierEntity.getTripartiteId());
|
||||||
|
//根据供应商编码和名称查询明细
|
||||||
|
String code = supplierEntity.getCode();
|
||||||
|
String name = supplierEntity.getName();
|
||||||
|
//System.out.println("根据供应处名称,编码获取明细数据:code:"+code +"name:"+name);
|
||||||
|
logger.info("根据供应处名称,编码获取明细数据:code:"+code +"name:"+name);
|
||||||
|
BipSupplierDetailsEntity bipSupplierDetailsEntity = new BipSupplierDetailsEntity();
|
||||||
|
bipSupplierDetailsEntity.setCode(code);
|
||||||
|
bipSupplierDetailsEntity.setName(name);
|
||||||
|
logger.info("根据供应商编码,名称查询银行档案 {}",JSON.toJSONString(bipSupplierDetailsEntity));
|
||||||
|
List<BipSupplierDetailsEntity> bipSupplierDetailsEntities = queryBipSupplierDetails(bipSupplierDetailsEntity) ;
|
||||||
|
// /bipSupplierDetails.stream().filter(that-> code.equalsIgnoreCase(that.getCode() ) && name.equalsIgnoreCase(that.getName() ) ).collect(Collectors.toList());
|
||||||
|
logger.info("根据供应处名称,编码获取明细数据 bipSupplierDetailsEntities值:{}",JSON.toJSONString(bipSupplierDetailsEntities));
|
||||||
|
if (bipSupplierDetailsEntities.size()>0 && null!=bipSupplierDetailsEntities){
|
||||||
|
bipSupplierDetailsEntities.get(0).setIsdefault("-8073674727882144390");
|
||||||
|
for (BipSupplierDetailsEntity supplierDetailsEntity : bipSupplierDetailsEntities) {
|
||||||
|
JSONObject jsonObjectDetails=new JSONObject();
|
||||||
|
jsonObjectDetails.put("splitbank",supplierDetailsEntity.getSplitbank());
|
||||||
|
jsonObjectDetails.put("bankaccno",supplierDetailsEntity.getBankaccno());
|
||||||
|
jsonObjectDetails.put("combinno",supplierDetailsEntity.getCombinno());
|
||||||
|
jsonObjectDetails.put("isdefault",supplierDetailsEntity.getIsdefault());
|
||||||
|
list.add(jsonObjectDetails);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
jsonObjectResult.put("details",list);
|
||||||
|
jsonObjectList.add(jsonObjectResult);
|
||||||
|
}
|
||||||
|
return BaseResult.getSuccessMessageEntity("查询成功",jsonObjectList);
|
||||||
|
}
|
||||||
|
@DS("oracle91")
|
||||||
|
private List<BipSupplierDetailsEntity> queryBipSupplierDetails(BipSupplierDetailsEntity bipSupplierDetailsEntity){
|
||||||
|
// BipSupplierDetailsEntity bipSupplierDetailsEntity=new BipSupplierDetailsEntity();
|
||||||
|
// bipSupplierDetailsEntity.setCode(supplierEntity.getCode());
|
||||||
|
// bipSupplierDetailsEntity.setName(supplierEntity.getName());
|
||||||
|
|
||||||
|
List<BipSupplierDetailsEntity> bipSupplierDetailsEntities = bipSupplierDetailsDao.thirdInterfaceGetSupplierDetails(bipSupplierDetailsEntity);
|
||||||
|
return bipSupplierDetailsEntities;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取BIP组织数据
|
||||||
|
* @param jsonObject
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public JsonResultEntity thirdInterfaceGetOrgs(JSONObject jsonObject) {
|
||||||
|
BipOrgsEntity bipOrgsEntity = getData("jsonStr", jsonObject, BipOrgsEntity.class);
|
||||||
|
//设置查询区间
|
||||||
|
bipOrgsEntity.setOrgsts(orgsts);
|
||||||
|
logger.info("查询组织数据,当前TS:" + orgsts);
|
||||||
|
List<BipOrgsEntity> bipOrgsEntities = bipOrgsDao.thirdInterfaceGetOrgs(bipOrgsEntity);
|
||||||
|
//更新TS时间
|
||||||
|
orgsts = DateUtil.dateToString(new Date(), "yyyy-MM-dd HH:mm:ss");
|
||||||
|
logger.info("组织TS已更新:" + orgsts);
|
||||||
|
logger.info("查询组织明细" + JSON.toJSONString(bipOrgsEntities));
|
||||||
|
List<JSONObject> jsonObjectList = new ArrayList<>();
|
||||||
|
if (null != bipOrgsEntities && bipOrgsEntities.size() > 0) {
|
||||||
|
for (BipOrgsEntity orgsEntity : bipOrgsEntities) {
|
||||||
|
List<JSONObject> list = new ArrayList<>();
|
||||||
|
JSONObject jsonObjectResult = new JSONObject();
|
||||||
|
jsonObjectResult.put("code", orgsEntity.getCode());//单位编码
|
||||||
|
jsonObjectResult.put("name", orgsEntity.getName());//单位名称
|
||||||
|
jsonObjectResult.put("tripartiteId", orgsEntity.getTripartiteId());//BIPID
|
||||||
|
//根据组织主键查询明细
|
||||||
|
String tripartiteId = orgsEntity.getTripartiteId();
|
||||||
|
//System.out.println("根据供应处名称,编码获取明细数据:code:"+code +"name:"+name);
|
||||||
|
logger.info("根据组织主键获取明细数据:pk_financeorg:{}", tripartiteId);
|
||||||
|
BipOrgsDetailsEntity bipOrgsDetailsEntity = new BipOrgsDetailsEntity();
|
||||||
|
bipOrgsDetailsEntity.setControlorg(tripartiteId);
|
||||||
|
List<BipOrgsDetailsEntity> bipOrgsDetailsEntities = queryBipOrgsDetails(bipOrgsDetailsEntity);
|
||||||
|
if (bipOrgsDetailsEntities.size() > 0 && null != bipOrgsDetailsEntities) {
|
||||||
|
for (BipOrgsDetailsEntity orgsDetailsEntity : bipOrgsDetailsEntities) {
|
||||||
|
JSONObject jsonObjectDetails = new JSONObject();
|
||||||
|
jsonObjectDetails.put("bankCode", orgsDetailsEntity.getBankCode());//开户行编码
|
||||||
|
jsonObjectDetails.put("bankName", orgsDetailsEntity.getBankName());//开户行名称
|
||||||
|
jsonObjectDetails.put("accnum", orgsDetailsEntity.getAccnum());//账户
|
||||||
|
jsonObjectDetails.put("cnapsCode", orgsDetailsEntity.getCnapsCode());//联行号
|
||||||
|
list.add(jsonObjectDetails);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
jsonObjectResult.put("details", list);
|
||||||
|
jsonObjectList.add(jsonObjectResult);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return BaseResult.getSuccessMessageEntity("查询成功", jsonObjectList);
|
||||||
|
}
|
||||||
|
private List<BipOrgsDetailsEntity> queryBipOrgsDetails(BipOrgsDetailsEntity bipOrgsDetailsEntity){
|
||||||
|
List<BipOrgsDetailsEntity> bipOrgsDetailsEntities = bipOrgsDetailsDao.thirdInterfaceGetOrgsDetails(bipOrgsDetailsEntity);
|
||||||
|
return bipOrgsDetailsEntities;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param object
|
||||||
|
* @return com.hzya.frame.web.entity.JsonResultEntity
|
||||||
|
* @Description 新增供应商
|
||||||
|
**/
|
||||||
|
@Override
|
||||||
|
public JsonResultEntity thirdInterfaceSaveSupplier(JSONObject object) {
|
||||||
|
JSONObject jsonObject = getstrObj("jsonStr", object);
|
||||||
|
//认证access_token
|
||||||
|
String access_token = jsonObject.getString("access_token");
|
||||||
|
//认证security_key
|
||||||
|
String security_key = jsonObject.getString("security_key");
|
||||||
|
//服务器ip:port
|
||||||
|
String baseUrl = jsonObject.getString("baseUrl");
|
||||||
|
//api方法
|
||||||
|
String apiUrl = jsonObject.getString("apiUrl");
|
||||||
|
//发送的数据
|
||||||
|
String sendData =jsonObject.getString("sendData");
|
||||||
|
//对应于在第三方应用注册当中的app_id
|
||||||
|
String client_id = jsonObject.getString("client_id");
|
||||||
|
//公钥
|
||||||
|
String pubKey = jsonObject.getString("pubKey");
|
||||||
|
//接口调用业务标识
|
||||||
|
String busi_id = jsonObject.getString("busi_id");
|
||||||
|
//重复调用检查
|
||||||
|
String repeat_check = jsonObject.getString("repeat_check");
|
||||||
|
//返回值压缩加密级别
|
||||||
|
String secret_level = jsonObject.getString("secret_level") == null ? "L0": jsonObject.getString("secret_level") ;
|
||||||
|
try {
|
||||||
|
String returnStr = sendApi(access_token, security_key, baseUrl,apiUrl,sendData,client_id,pubKey,busi_id,repeat_check,secret_level);
|
||||||
|
if(JSONUtil.isTypeJSON(returnStr)){
|
||||||
|
JSONObject jsonObject1 = JSONObject.parseObject(returnStr);
|
||||||
|
return BaseResult.getSuccessMessageEntity("发送数据成功",jsonObject1);
|
||||||
|
}else {
|
||||||
|
return BaseResult.getSuccessMessageEntity("发送数据成功",returnStr);
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
return BaseResult.getFailureMessageEntity("发送数据错误");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 供应商传递OA
|
||||||
|
* @param jsonObject
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public JsonResultEntity thirdInterfaceSendOa(JSONObject jsonObject) throws Exception {
|
||||||
|
JSONObject jsonObjectStr = getstrObj("jsonStr", jsonObject);
|
||||||
|
PluginBaseEntity pluginBaseEntity = PluginUtils.getPluginsById(jsonObjectStr.getString("plug_id"));
|
||||||
|
JsonResultEntity s = pluginBaseEntity.executeBusiness(jsonObjectStr);
|
||||||
|
return BaseResult.getSuccessMessageEntity("传递成功");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param access_token 认证access_token
|
||||||
|
* @param security_key 认证security_key
|
||||||
|
* @param baseUrl 服务器ip:port
|
||||||
|
* @param apiUrl api方法
|
||||||
|
* @param putParameter 发送的数据
|
||||||
|
* @param client_id 对应于在第三方应用注册当中的app_id
|
||||||
|
* @param pubKey 公钥
|
||||||
|
* @param busi_id 接口调用业务标识
|
||||||
|
* @param repeat_check 重复调用检查
|
||||||
|
* @param secret_level 返回值压缩加密级别
|
||||||
|
* @return java.lang.String
|
||||||
|
* @Author lvleigang
|
||||||
|
* @Description 发起api接口
|
||||||
|
* @Date 9:52 上午 2023/8/22
|
||||||
|
**/
|
||||||
|
private String sendApi(String access_token, String security_key, String baseUrl, String apiUrl, String putParameter, String client_id, String pubKey, String busi_id, String repeat_check, String secret_level) throws Exception{
|
||||||
|
// header 参数
|
||||||
|
Map<String, String> headermap = new HashMap<>();
|
||||||
|
headermap.put("access_token", access_token);
|
||||||
|
headermap.put("client_id", client_id);
|
||||||
|
StringBuffer sb = new StringBuffer();
|
||||||
|
sb.append(client_id);
|
||||||
|
if (StringUtils.isNotBlank(putParameter)) {
|
||||||
|
sb.append(putParameter);
|
||||||
|
}
|
||||||
|
sb.append(pubKey);
|
||||||
|
String sign = SHA256Util.getSHA256(sb.toString(), pubKey);
|
||||||
|
headermap.put("signature", sign);
|
||||||
|
if (StringUtils.isNotBlank(busi_id)) {
|
||||||
|
headermap.put("busi_id", busi_id);
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotBlank(repeat_check)) {
|
||||||
|
headermap.put("repeat_check", repeat_check);
|
||||||
|
}
|
||||||
|
String mediaType = "application/json;charset=utf-8";
|
||||||
|
// 表体数据json
|
||||||
|
// 根据安全级别选择加密或压缩请求表体参数
|
||||||
|
String json = dealRequestBody(putParameter, security_key, secret_level);
|
||||||
|
// 返回值
|
||||||
|
String sendUrl = baseUrl + apiUrl;
|
||||||
|
String result = doPostHutool(sendUrl, null, mediaType, headermap, json, "bill");
|
||||||
|
String changeData = dealResponseBody(result, security_key, secret_level);
|
||||||
|
return changeData;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 返回值进行过加密和压缩,对返回值进行解压和解密
|
||||||
|
private static String dealResponseBody(String source, String security_key, String level) throws Exception {
|
||||||
|
String result = null;
|
||||||
|
if (StringUtils.isEmpty(level) || SecretConst.LEVEL0.equals(level)) {
|
||||||
|
result = source;
|
||||||
|
} else if (SecretConst.LEVEL1.equals(level)) {
|
||||||
|
result = Decryption.symDecrypt(security_key, source);
|
||||||
|
} else if (SecretConst.LEVEL2.equals(level)) {
|
||||||
|
result = CompressUtil.gzipDecompress(source);
|
||||||
|
} else if (SecretConst.LEVEL3.equals(level)) {
|
||||||
|
result = CompressUtil.gzipDecompress(Decryption.symDecrypt(security_key, source));
|
||||||
|
} else if (SecretConst.LEVEL4.equals(level)) {
|
||||||
|
result = Decryption.symDecrypt(security_key, CompressUtil.gzipDecompress(source));
|
||||||
|
} else {
|
||||||
|
throw new Exception("无效的安全等级");
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 根据安全级别设置,表体是否加密或压缩
|
||||||
|
private static String dealRequestBody(String source, String security_key, String level) throws Exception {
|
||||||
|
String result = null;
|
||||||
|
if (StringUtils.isEmpty(level) || SecretConst.LEVEL0.equals(level)) {
|
||||||
|
result = source;
|
||||||
|
} else if (SecretConst.LEVEL1.equals(level)) {
|
||||||
|
result = Encryption.symEncrypt(security_key, source);
|
||||||
|
} else if (SecretConst.LEVEL2.equals(level)) {
|
||||||
|
result = CompressUtil.gzipCompress(source);
|
||||||
|
} else if (SecretConst.LEVEL3.equals(level)) {
|
||||||
|
result = Encryption.symEncrypt(security_key, CompressUtil.gzipCompress(source));
|
||||||
|
} else if (SecretConst.LEVEL4.equals(level)) {
|
||||||
|
result = CompressUtil.gzipCompress(Encryption.symEncrypt(security_key, source));
|
||||||
|
} else {
|
||||||
|
throw new Exception("无效的安全等级");
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
class SecretConst {
|
||||||
|
/**
|
||||||
|
* LEVEL0 不压缩、不加密
|
||||||
|
*/
|
||||||
|
public static final String LEVEL0 = "L0";
|
||||||
|
/**
|
||||||
|
* LEVEL1 只加密、不压缩
|
||||||
|
*/
|
||||||
|
public static final String LEVEL1 = "L1";
|
||||||
|
/**
|
||||||
|
* LEVEL2 只压缩、不加密
|
||||||
|
*/
|
||||||
|
public static final String LEVEL2 = "L2";
|
||||||
|
/**
|
||||||
|
* LEVEL3 先压缩、后加密
|
||||||
|
*/
|
||||||
|
public static final String LEVEL3 = "L3";
|
||||||
|
/**
|
||||||
|
* LEVEL4 先加密、后压缩
|
||||||
|
*/
|
||||||
|
public static final String LEVEL4 = "L4";
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,92 @@
|
||||||
|
package com.hzya.frame.bip.v3.v2207.service.impl;
|
||||||
|
|
||||||
|
|
||||||
|
import cn.hutool.http.HttpRequest;
|
||||||
|
import cn.hutool.json.JSONUtil;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.alibaba.fastjson2.JSON;
|
||||||
|
import com.baomidou.dynamic.datasource.annotation.DS;
|
||||||
|
import com.hzya.frame.base.PluginBaseEntity;
|
||||||
|
import com.hzya.frame.basedao.service.impl.BaseService;
|
||||||
|
import com.hzya.frame.bip.v3.v2207.dao.IBipOrgsDao;
|
||||||
|
import com.hzya.frame.bip.v3.v2207.dao.IBipOrgsDetailsDao;
|
||||||
|
import com.hzya.frame.bip.v3.v2207.dao.IBipSupplierDao;
|
||||||
|
import com.hzya.frame.bip.v3.v2207.dao.IBipSupplierDetailsDao;
|
||||||
|
import com.hzya.frame.bip.v3.v2207.entity.*;
|
||||||
|
import com.hzya.frame.bip.v3.v2207.service.IBipV32207Service;
|
||||||
|
import com.hzya.frame.bip.v3.v2207.service.IBipV32207TokenService;
|
||||||
|
import com.hzya.frame.dateutil.DateUtil;
|
||||||
|
import com.hzya.frame.sysnew.application.entity.SysExtensionApiEntity;
|
||||||
|
import com.hzya.frame.util.PluginUtils;
|
||||||
|
import com.hzya.frame.util.bipV3.Encryption;
|
||||||
|
import com.hzya.frame.util.bipV3.SHA256Util;
|
||||||
|
import com.hzya.frame.util.oldNcc.CompressUtil;
|
||||||
|
import com.hzya.frame.util.oldNcc.Decryption;
|
||||||
|
import com.hzya.frame.web.entity.BaseResult;
|
||||||
|
import com.hzya.frame.web.entity.JsonResultEntity;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.net.URLEncoder;
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
|
||||||
|
@Service(value = "bipV32207TokenService")
|
||||||
|
public class BipV32207TokenServiceImpl extends BaseService<BipTokenVo, String> implements IBipV32207TokenService {
|
||||||
|
private final Logger logger = LoggerFactory.getLogger(this.getClass());
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @content 此方法获取BIPtoken,heade参数动态传入
|
||||||
|
* @author laborer
|
||||||
|
* @date 2024/5/27 0027 11:38
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SysExtensionApiEntity getBipToken(SysExtensionApiEntity entity) {
|
||||||
|
try {
|
||||||
|
Map<String, String> headers = entity.getHeaders();
|
||||||
|
String client_id = headers.get("client_id");
|
||||||
|
Map<String, String> paramMap = new HashMap<String, String>();
|
||||||
|
// 密码模式认证
|
||||||
|
paramMap.put("grant_type", "client_credentials");
|
||||||
|
// 第三方应用id
|
||||||
|
paramMap.put("client_id", client_id);
|
||||||
|
// 第三方应用secret]
|
||||||
|
String client_secret = headers.get("client_secret");
|
||||||
|
// 账套编码
|
||||||
|
String busi_center = headers.get("busi_center");
|
||||||
|
//用户编码
|
||||||
|
String usercode = headers.get("usercode");
|
||||||
|
//数据库编码
|
||||||
|
String dsname = headers.get("dsname");
|
||||||
|
String pubKey = headers.get("pubKey");
|
||||||
|
// 第三方应用secret 公钥加密]
|
||||||
|
paramMap.put("client_secret", URLEncoder.encode(Encryption.pubEncrypt(pubKey, client_secret), "utf-8"));
|
||||||
|
// 账套编码
|
||||||
|
paramMap.put("biz_center", busi_center);
|
||||||
|
// // TODO 传递数据源和ncc登录用户
|
||||||
|
paramMap.put("dsname", dsname);
|
||||||
|
paramMap.put("usercode", usercode);
|
||||||
|
// 签名
|
||||||
|
String sign = SHA256Util.getSHA256(client_id + client_secret + pubKey,pubKey);
|
||||||
|
paramMap.put("signature", sign);
|
||||||
|
StringBuffer querys = new StringBuffer();
|
||||||
|
querys.append("biz_center="+busi_center);
|
||||||
|
querys.append("&grant_type="+"client_credentials");
|
||||||
|
querys.append("&signature="+sign);
|
||||||
|
querys.append("&dsname="+dsname);
|
||||||
|
querys.append("&client_secret="+URLEncoder.encode(Encryption.pubEncrypt(pubKey, client_secret), "utf-8"));
|
||||||
|
querys.append("&usercode="+usercode);
|
||||||
|
querys.append("&client_id="+client_id);
|
||||||
|
entity.setQuerys(querys.toString());
|
||||||
|
headers.put("content-type","application/x-www-form-urlencoded");
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return entity;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,65 @@
|
||||||
|
package com.hzya.frame.bip.v3.v2207.util;
|
||||||
|
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import cn.hutool.http.HttpRequest;
|
||||||
|
import com.alibaba.fastjson.JSON;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* com.hzya.frame.bip.v3.v2207.util
|
||||||
|
*
|
||||||
|
* @author makejava
|
||||||
|
* @date 2024-05 -30 14:20
|
||||||
|
*/
|
||||||
|
|
||||||
|
public class BipUtil {
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @content 发送单据到BIP系统
|
||||||
|
* @author laborer
|
||||||
|
* @date 2024/6/21 0021 10:51
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
public static String sendU9cTOBipEsb(String parm, String apiCode,String token){
|
||||||
|
String baseUrl = "http://127.0.0.1:9999/kangarooDataCenterV3/entranceController/externalCallInterface";
|
||||||
|
System.out.println("推送参数"+parm);
|
||||||
|
String result = HttpRequest.post(baseUrl)
|
||||||
|
.header("appId", "800023")//头信息,多个头信息多次调用此方法即可
|
||||||
|
.header("access_token", token)//头信息,多个头信息多次调用此方法即可
|
||||||
|
.header("apiCode", apiCode)//头信息,多个头信息多次调用此方法即可
|
||||||
|
.header("publicKey", "ZJYA1vBeY1ai53iNmbAEsw6DImjkXGBkdMailxcBdliFC85Ce7eDIk+3zDUT+v578prj")//头信息,多个头信息多次调用此方法即可
|
||||||
|
.header("secretKey", "7Gp6OjHrIaQ6R3tXGPrI4morjQyWL+qu4JJschQnkBRtv26VDgGFVYKOy5kMZfd/j3JzOP8MtA1LSGvL+2BWG8c/o7DKi92S4mr3zcGearA=")//头信息,多个头信息多次调用此方法即可
|
||||||
|
.body(parm)//表单内容
|
||||||
|
.timeout(20000)//超时,毫秒
|
||||||
|
.execute().body();
|
||||||
|
System.out.println("返回参数"+result);
|
||||||
|
if(StrUtil.isNotEmpty(result)){
|
||||||
|
return analytic(result);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
public static String getBipToken(String userCode, String apiCode){
|
||||||
|
String baseUrl = "http://127.0.0.1:9999/kangarooDataCenterV3/entranceController/externalCallInterface";
|
||||||
|
String result = HttpRequest.post(baseUrl)
|
||||||
|
.header("appId", "800023")//头信息,多个头信息多次调用此方法即可
|
||||||
|
.header("apiCode", apiCode)//头信息,多个头信息多次调用此方法即可
|
||||||
|
.header("usercode", userCode)//头信息,多个头信息多次调用此方法即可
|
||||||
|
.header("publicKey", "ZJYA1vBeY1ai53iNmbAEsw6DImjkXGBkdMailxcBdliFC85Ce7eDIk+3zDUT+v578prj")//头信息,多个头信息多次调用此方法即可
|
||||||
|
.header("secretKey", "7Gp6OjHrIaQ6R3tXGPrI4morjQyWL+qu4JJschQnkBRtv26VDgGFVYKOy5kMZfd/j3JzOP8MtA1LSGvL+2BWG8c/o7DKi92S4mr3zcGearA=")//头信息,多个头信息多次调用此方法即可
|
||||||
|
.body("")//表单内容
|
||||||
|
.timeout(20000)//超时,毫秒
|
||||||
|
.execute().body();
|
||||||
|
System.out.println("返回参数"+result);
|
||||||
|
if(StrUtil.isNotEmpty(result)){
|
||||||
|
JSONObject obj = JSON.parseObject( analytic(result));
|
||||||
|
JSONObject data = obj.getJSONObject("data");
|
||||||
|
return data.getString("access_token");
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
public static String analytic(String parm){
|
||||||
|
JSONObject main = JSON.parseObject(parm);
|
||||||
|
return main.getString("attribute");
|
||||||
|
}
|
||||||
|
}
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
|
||||||
|
version="4.0">
|
||||||
|
</web-app>
|
2
pom.xml
2
pom.xml
|
@ -7,7 +7,7 @@
|
||||||
<module>base-common</module>
|
<module>base-common</module>
|
||||||
<module>base-webapp</module>
|
<module>base-webapp</module>
|
||||||
<module>base-core</module>
|
<module>base-core</module>
|
||||||
<!-- <module>fw-bip</module>-->
|
<module>fw-bip</module>
|
||||||
<!-- <module>fw-cbs</module>-->
|
<!-- <module>fw-cbs</module>-->
|
||||||
<!-- <module>fw-dd</module>-->
|
<!-- <module>fw-dd</module>-->
|
||||||
<!-- <module>fw-grpU8</module>-->
|
<!-- <module>fw-grpU8</module>-->
|
||||||
|
|
Loading…
Reference in New Issue