diff --git a/buildpackage/pom.xml b/buildpackage/pom.xml
index 8feb8f73..338977d9 100644
--- a/buildpackage/pom.xml
+++ b/buildpackage/pom.xml
@@ -37,7 +37,7 @@
- kangarooDataCenterV3
+ kangarooDataCenter
diff --git a/buildpackage/src/main/resources/application.properties b/buildpackage/src/main/resources/application.properties
index 0e2cc4b2..a84ef232 100644
--- a/buildpackage/src/main/resources/application.properties
+++ b/buildpackage/src/main/resources/application.properties
@@ -1,11 +1,11 @@
#应用名
-spring.application.name=kangarooDataCenterV3
+spring.application.name=kangarooDataCenter
#端口
server.port=9999
#编码集
server.tomcat.uri-encoding=utf-8
#工程访问名称
-server.servlet.context-path=/kangarooDataCenterV3
+server.servlet.context-path=/kangarooDataCenter
#json日期格式化
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
spring.jackson.time-zone=GMT+8
diff --git a/common/src/main/java/com/hzya/frame/basedao/service/impl/GeneralServiceImpl.java b/common/src/main/java/com/hzya/frame/basedao/service/impl/GeneralServiceImpl.java
index c6d6c6f9..5c28922d 100644
--- a/common/src/main/java/com/hzya/frame/basedao/service/impl/GeneralServiceImpl.java
+++ b/common/src/main/java/com/hzya/frame/basedao/service/impl/GeneralServiceImpl.java
@@ -637,10 +637,7 @@ public class GeneralServiceImpl implements GeneralService {
@Override
public JsonResultEntity selectDictionaryshop(JSONObject object) {
//校验数据(只校验表名称)
- if (!checkStr(object.getString("tableName"))) {
- return BaseResult.getFailureMessageEntity("表名不存在");
- }
- String tablename = object.getString("tableName");
+ String tablename = "sys_dictionaryshop_new";
JSONObject jsonObject = object.getJSONObject("jsonStr");
List whereCriteria = new ArrayList<>();
whereCriteria.add(new WhereCriterion("(", "sts", ConditionType.等于.getValue(), "Y", ")", ConnectType.AND));
diff --git a/common/src/main/java/com/hzya/frame/execsql/service/ExecSqlServiceImpl.java b/common/src/main/java/com/hzya/frame/execsql/service/ExecSqlServiceImpl.java
index 83ad0318..468e0c3c 100644
--- a/common/src/main/java/com/hzya/frame/execsql/service/ExecSqlServiceImpl.java
+++ b/common/src/main/java/com/hzya/frame/execsql/service/ExecSqlServiceImpl.java
@@ -61,7 +61,7 @@ public class ExecSqlServiceImpl implements IExecSqlService {
logger.info("=============execSelectSql方法要执行的sql:============" + select_sql);
if (!select_sql.contains("update") && !select_sql.contains("delete")
&& !select_sql.contains("insert") && !select_sql.contains("create")) {
- list = sqlSession.selectList("com.hzya.frame.sys.execsql.entity.ExecSqlEntity.ExecSqlEntity_execsql", entity);
+ list = sqlSession.selectList("com.hzya.frame.sysnew.execsql.entity.ExecSqlEntity.ExecSqlEntity_execsql", entity);
logger.info("===========execSelectSql方法返回的结果条数=============" + list.size());
}
//sqlSession.close();
@@ -87,7 +87,7 @@ public class ExecSqlServiceImpl implements IExecSqlService {
logger.info("=============execUpdateSql方法要执行的sql:============" + sql);
ExecSqlEntity entity = new ExecSqlEntity();
entity.setSql(sql);
- int result = sqlSession.update("com.hzya.frame.sys.execsql.entity.ExecSqlEntity.ExecSqlEntity_execsql_update", entity);
+ int result = sqlSession.update("com.hzya.frame.sysnew.execsql.entity.ExecSqlEntity.ExecSqlEntity_execsql_update", entity);
logger.info("update受影响行数:" + result);
//sqlSession.close();
return result;
@@ -117,7 +117,7 @@ public class ExecSqlServiceImpl implements IExecSqlService {
logger.info("=============execInsertSql方法要执行的sql:============" + sql);
ExecSqlEntity entity = new ExecSqlEntity();
entity.setSql(sql);
- int result = sqlSession.insert("com.hzya.frame.sys.execsql.entity.ExecSqlEntity.ExecSqlEntity_execsql_insert", entity);
+ int result = sqlSession.insert("com.hzya.frame.sysnew.execsql.entity.ExecSqlEntity.ExecSqlEntity_execsql_insert", entity);
logger.info("insert受影响行数:" + result);
//sqlSession.close();
return result;
diff --git a/service/src/main/java/com/hzya/frame/bip/v3/v2207/dao/IBipOrgsDao.java b/service/src/main/java/com/hzya/frame/bip/v3/v2207/dao/IBipOrgsDao.java
new file mode 100644
index 00000000..0ad05a4c
--- /dev/null
+++ b/service/src/main/java/com/hzya/frame/bip/v3/v2207/dao/IBipOrgsDao.java
@@ -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 {
+
+ /**
+ * 查询BIP业务单元
+ * @param BipOrgsEntity
+ * @return
+ */
+ List thirdInterfaceGetOrgs(BipOrgsEntity BipOrgsEntity);
+}
diff --git a/service/src/main/java/com/hzya/frame/bip/v3/v2207/dao/IBipOrgsDetailsDao.java b/service/src/main/java/com/hzya/frame/bip/v3/v2207/dao/IBipOrgsDetailsDao.java
new file mode 100644
index 00000000..e0e6ea3f
--- /dev/null
+++ b/service/src/main/java/com/hzya/frame/bip/v3/v2207/dao/IBipOrgsDetailsDao.java
@@ -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 {
+
+ /**
+ * 查询BIP业务单元银行账户
+ * @param BipOrgsDetailsEntity
+ * @return
+ */
+ List thirdInterfaceGetOrgsDetails(BipOrgsDetailsEntity BipOrgsDetailsEntity);
+}
diff --git a/service/src/main/java/com/hzya/frame/bip/v3/v2207/dao/IBipSupplierDao.java b/service/src/main/java/com/hzya/frame/bip/v3/v2207/dao/IBipSupplierDao.java
new file mode 100644
index 00000000..ba069080
--- /dev/null
+++ b/service/src/main/java/com/hzya/frame/bip/v3/v2207/dao/IBipSupplierDao.java
@@ -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 {
+
+ /**
+ * 查询BIP供应商
+ * @param bipSupplierEntity
+ * @return
+ */
+ List thirdInterfaceGetSupplier(BipSupplierEntity bipSupplierEntity);
+}
diff --git a/service/src/main/java/com/hzya/frame/bip/v3/v2207/dao/IBipSupplierDetailsDao.java b/service/src/main/java/com/hzya/frame/bip/v3/v2207/dao/IBipSupplierDetailsDao.java
new file mode 100644
index 00000000..2edaa29e
--- /dev/null
+++ b/service/src/main/java/com/hzya/frame/bip/v3/v2207/dao/IBipSupplierDetailsDao.java
@@ -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 {
+
+ /**
+ * 查询BIP供应商明细
+ * @param bipSupplierDetailsEntity
+ * @return
+ */
+ List thirdInterfaceGetSupplierDetails(BipSupplierDetailsEntity bipSupplierDetailsEntity);
+}
diff --git a/service/src/main/java/com/hzya/frame/bip/v3/v2207/dao/impl/BipOrgsDaoImpl.java b/service/src/main/java/com/hzya/frame/bip/v3/v2207/dao/impl/BipOrgsDaoImpl.java
new file mode 100644
index 00000000..478c54ca
--- /dev/null
+++ b/service/src/main/java/com/hzya/frame/bip/v3/v2207/dao/impl/BipOrgsDaoImpl.java
@@ -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 implements IBipOrgsDao {
+ /**
+ * 查询BIP业务单元
+ * @param BipOrgsEntity
+ * @return
+ */
+ @DS("oracle91")
+ @Override
+ public List thirdInterfaceGetOrgs(BipOrgsEntity BipOrgsEntity) {
+ return super.query("com.hzya.frame.bip.v3.v2207.dao.impl.BipOrgsDaoImpl.thirdInterfaceGetOrgs",BipOrgsEntity);
+ }
+}
diff --git a/service/src/main/java/com/hzya/frame/bip/v3/v2207/dao/impl/BipOrgsDetailsDaoImpl.java b/service/src/main/java/com/hzya/frame/bip/v3/v2207/dao/impl/BipOrgsDetailsDaoImpl.java
new file mode 100644
index 00000000..5d51da6d
--- /dev/null
+++ b/service/src/main/java/com/hzya/frame/bip/v3/v2207/dao/impl/BipOrgsDetailsDaoImpl.java
@@ -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 implements IBipOrgsDetailsDao {
+ @DS("oracle91")
+ @Override
+ public List thirdInterfaceGetOrgsDetails(BipOrgsDetailsEntity bipOrgsDetailsEntity) {
+ return super.query("com.hzya.frame.bip.v3.v2207.dao.impl.BipOrgsDetailsDaoImpl.thirdInterfaceGetOrgsDetails",bipOrgsDetailsEntity);
+ }
+}
diff --git a/service/src/main/java/com/hzya/frame/bip/v3/v2207/dao/impl/BipSupplierDaoImpl.java b/service/src/main/java/com/hzya/frame/bip/v3/v2207/dao/impl/BipSupplierDaoImpl.java
new file mode 100644
index 00000000..9abe9ee7
--- /dev/null
+++ b/service/src/main/java/com/hzya/frame/bip/v3/v2207/dao/impl/BipSupplierDaoImpl.java
@@ -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 implements IBipSupplierDao {
+ /**
+ * 查询BIP供应商
+ * @param bipSupplierEntity
+ * @return
+ */
+ @DS("oracle91")
+ @Override
+ public List thirdInterfaceGetSupplier(BipSupplierEntity bipSupplierEntity) {
+ return super.query("com.hzya.frame.bip.v3.v2207.dao.impl.BipSupplierDaoImpl.thirdInterfaceGetSupplier",bipSupplierEntity);
+ }
+}
diff --git a/service/src/main/java/com/hzya/frame/bip/v3/v2207/dao/impl/BipSupplierDetailsDaoImpl.java b/service/src/main/java/com/hzya/frame/bip/v3/v2207/dao/impl/BipSupplierDetailsDaoImpl.java
new file mode 100644
index 00000000..89443371
--- /dev/null
+++ b/service/src/main/java/com/hzya/frame/bip/v3/v2207/dao/impl/BipSupplierDetailsDaoImpl.java
@@ -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 implements IBipSupplierDetailsDao {
+ @DS("oracle91")
+ @Override
+ public List thirdInterfaceGetSupplierDetails(BipSupplierDetailsEntity bipSupplierDetailsEntity) {
+ return super.query("com.hzya.frame.bip.v3.v2207.dao.impl.BipSupplierDetailsDaoImpl.thirdInterfaceGetSupplierDetails",bipSupplierDetailsEntity);
+ }
+}
diff --git a/service/src/main/java/com/hzya/frame/bip/v3/v2207/dps/service/IPayMentService.java b/service/src/main/java/com/hzya/frame/bip/v3/v2207/dps/service/IPayMentService.java
new file mode 100644
index 00000000..e94d59fe
--- /dev/null
+++ b/service/src/main/java/com/hzya/frame/bip/v3/v2207/dps/service/IPayMentService.java
@@ -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);
+
+}
diff --git a/service/src/main/java/com/hzya/frame/bip/v3/v2207/dps/service/impl/PayMentServiceImpl.java b/service/src/main/java/com/hzya/frame/bip/v3/v2207/dps/service/impl/PayMentServiceImpl.java
new file mode 100644
index 00000000..1b9308a5
--- /dev/null
+++ b/service/src/main/java/com/hzya/frame/bip/v3/v2207/dps/service/impl/PayMentServiceImpl.java
@@ -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("\n");
+ }
+ } else {
+ stringBuffer.append("\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="\n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ "\n" +
+ "\n" +
+ "LogOn\n" +
+ ""+DateUtil.dateToString(new Date(), "yyyy-MM-dd HH:mm:ss")+"\n" +
+ "OA\n" +
+ "CFS\n" +
+ "OA登录验证发送\n" +
+ "\n" +
+ "\n" +
+ ""+name+"\n" +
+ ""+password+"\n" +
+ "\n" +
+ "\n" +
+ " ]]>\n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ "";
+ 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("\n");
+ }
+ } else {
+ stringBuffer.append("\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 = "\n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ "\n" +
+ "\n" +
+ "" + code + "\n" +
+ "" + DateUtil.dateToString(new Date(), "yyyy-MM-dd HH:mm:ss") + "\n" +
+ "OA\n" +
+ "CFS\n" +
+ "" + remark + "\n" +
+ "" + token + "\n" +
+ "\n" +
+ "\n" +
+ "\n";
+ if (stringBuffer != null) {
+ xml += stringBuffer.toString();
+ xml += "
\n" +
+ "\n" +
+ "\n" +
+ " ]]>\n" +
+ " \n" +
+ " \n" +
+ " \n" +
+ "";
+ } else {
+ xml += "\n" +
+ "