diff --git a/base-webapp/pom.xml b/base-webapp/pom.xml
index 79bd4cf9..6b3e13b4 100644
--- a/base-webapp/pom.xml
+++ b/base-webapp/pom.xml
@@ -44,11 +44,11 @@
-
-
-
-
-
+
+ com.hzya.frame
+ fw-ncc
+ ${revision}
+
diff --git a/fw-ncc/pom.xml b/fw-ncc/pom.xml
new file mode 100644
index 00000000..5af28896
--- /dev/null
+++ b/fw-ncc/pom.xml
@@ -0,0 +1,48 @@
+
+
+
+ kangarooDataCenterV3
+ com.hzya.frame
+ ${revision}
+
+ 4.0.0
+ fw-ncc
+ jar
+ ${revision}
+
+
+
+ com.hzya.frame
+ base-service
+ ${revision}
+
+
+ mysql
+ mysql-connector-java
+ ${mysql-connector-java}
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+ none
+ execute
+ true
+
+
+
+
+ repackage
+
+
+
+
+
+
+
diff --git a/fw-ncc/src/main/java/com/hzya/frame/ncc/v202005/service/INccV202005Service.java b/fw-ncc/src/main/java/com/hzya/frame/ncc/v202005/service/INccV202005Service.java
new file mode 100644
index 00000000..7b5890b8
--- /dev/null
+++ b/fw-ncc/src/main/java/com/hzya/frame/ncc/v202005/service/INccV202005Service.java
@@ -0,0 +1,35 @@
+package com.hzya.frame.ncc.v202005.service;
+
+
+import com.alibaba.fastjson.JSONObject;
+import com.hzya.frame.web.entity.JsonResultEntity;
+
+public interface INccV202005Service {
+
+ /**
+ * @param jsonObject
+ * @return com.hzya.frame.web.entity.JsonResultEntity
+ * @Author lvleigang
+ * @Description 查询列表
+ * @Date 2:18 下午 2023/7/17
+ **/
+ JsonResultEntity thirdInterfaceGetToken(JSONObject jsonObject);
+
+
+ /**
+ * @param jsonObject
+ * @return com.hzya.frame.web.entity.JsonResultEntity
+ * @Author lvleigang
+ * @Description 获取ncc数据
+ * @Date 2:18 下午 2023/7/17
+ **/
+ JsonResultEntity getNccDataDetail(JSONObject jsonObject);
+ /**
+ * @param jsonObject
+ * @return com.hzya.frame.web.entity.JsonResultEntity
+ * @Author lvleigang
+ * @Description 获取ncc数据
+ * @Date 2:18 下午 2023/7/17
+ **/
+ JsonResultEntity getNccData(JSONObject jsonObject);
+}
\ No newline at end of file
diff --git a/fw-ncc/src/main/java/com/hzya/frame/ncc/v202005/service/impl/NccV202005ServiceImpl.java b/fw-ncc/src/main/java/com/hzya/frame/ncc/v202005/service/impl/NccV202005ServiceImpl.java
new file mode 100644
index 00000000..4b96a09a
--- /dev/null
+++ b/fw-ncc/src/main/java/com/hzya/frame/ncc/v202005/service/impl/NccV202005ServiceImpl.java
@@ -0,0 +1,216 @@
+package com.hzya.frame.ncc.v202005.service.impl;
+
+
+import cn.hutool.json.JSONUtil;
+import com.alibaba.fastjson.JSONObject;
+import com.hzya.frame.ncc.v202005.service.INccV202005Service;
+import com.hzya.frame.util.oldNcc.Encryption;
+import com.hzya.frame.util.oldNcc.SHA256Util;
+import com.hzya.frame.web.entity.BaseResult;
+import com.hzya.frame.web.entity.JsonResultEntity;
+import org.springframework.stereotype.Service;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.OutputStream;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.net.URLEncoder;
+import java.nio.charset.Charset;
+import java.util.HashMap;
+import java.util.Map;
+
+
+@Service(value="nccV202005Service")
+public class NccV202005ServiceImpl implements INccV202005Service {
+ private final Logger logger = LoggerFactory.getLogger(this.getClass());
+
+
+ @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 paramMap = new HashMap();
+ // 密码模式认证
+ 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) {
+ return BaseResult.getFailureMessageEntity("获取token失败");
+ }
+ // 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);
+ paramMap.put("signature", sign);
+ paramMap.put("dsname", dsname);
+ String url = baseUrl + "/nccloud/opm/accesstoken";
+ String mediaType = "application/x-www-form-urlencoded";
+ String token = doPost(url, paramMap, mediaType, null, "");
+ //System.out.println("token:" + token);
+ if(JSONUtil.isTypeJSON(token)){
+ JSONObject jsonObject1 = JSONObject.parseObject(token);
+ return BaseResult.getSuccessMessageEntity("获取token成功",jsonObject1);
+ }else {
+ return BaseResult.getSuccessMessageEntity("获取token成功",token);
+ }
+ }
+
+ @Override
+ public JsonResultEntity getNccData(JSONObject object) {
+ String token = "{\"head\":{\"primal_money\":\"489.00\",\"bill_date\":\"2023-08-15 06:10:01\",\"pk_currtype\":\"1002Z0100000000001K1\",\"bill_type\":\"F4\",\"trade_type\":\"D4\",\"billmaker_date\":\"2023-08-15 06:10:01\",\"objecttype\":\"0\",\"source_flag\":\"2\",\"pk_org\":\"0001W310000000002WN9\"},\"body\":[{\"bill_date\":\"2023-08-15 06:10:01\",\"pk_customer\":\"1001W3100000000007PV\",\"pk_account\":\"1001W3100000000007RQ\",\"pk_recproject\":\"1001W3100000000007QR\",\"pk_currtype\":\"1002Z0100000000001K1\",\"bill_type\":\"F4\",\"trade_type\":\"D4\",\"creationtime\":\"2023-08-15 06:10:01\",\"objecttype\":\"0\",\"pk_org\":\"0001W310000000002WN9\",\"direction\":\"1\",\"rec_primal\":\"489.00\"}]}";
+ JSONObject jsonObject1 = JSONObject.parseObject(token);
+ return BaseResult.getSuccessMessageEntity("获取数据成功",jsonObject1);
+ }
+ @Override
+ public JsonResultEntity getNccDataDetail(JSONObject object) {
+ String token = "{\"primal_money\":\"489.00\",\"bill_date\":\"2023-08-15 06:10:01\",\"pk_currtype\":\"1002Z0100000000001K1\",\"bill_type\":\"F4\",\"trade_type\":\"D4\",\"billmaker_date\":\"2023-08-15 06:10:01\",\"objecttype\":\"0\",\"source_flag\":\"2\",\"pk_org\":\"0001W310000000002WN9\",\"bill_date1\":\"2023-08-15 06:10:01\",\"pk_customer\":\"1001W3100000000007PV\",\"pk_account\":\"1001W3100000000007RQ\",\"pk_recproject\":\"1001W3100000000007QR\",\"pk_currtype1\":\"1002Z0100000000001K1\",\"bill_type1\":\"F4\",\"trade_type1\":\"D4\",\"creationtime\":\"2023-08-15 06:10:01\",\"objecttype1\":\"0\",\"pk_org1\":\"0001W310000000002WN9\",\"direction\":\"1\",\"rec_primal\":\"489.00\"}";
+ JSONObject jsonObject1 = JSONObject.parseObject(token);
+ return BaseResult.getSuccessMessageEntity("获取数据成功",jsonObject1);
+ }
+
+ /**
+ * 发送post请求
+ *
+ * @param baseUrl
+ * @param paramMap
+ * @param mediaType
+ * @param headers
+ * @param json
+ * @return
+ */
+ private String doPost(String baseUrl, Map paramMap, String mediaType, Map headers, String json) {
+
+ HttpURLConnection urlConnection = null;
+ InputStream in = null;
+ OutputStream out = null;
+ BufferedReader bufferedReader = null;
+ String result = null;
+ try {
+ StringBuffer sb = new StringBuffer();
+ sb.append(baseUrl);
+ if (paramMap != null) {
+ sb.append("?");
+ for (Map.Entry entry : paramMap.entrySet()) {
+ String key = entry.getKey();
+ String value = entry.getValue();
+ sb.append(key + "=" + value).append("&");
+ }
+ baseUrl = sb.toString().substring(0, sb.toString().length() - 1);
+ }
+
+ URL urlObj = new URL(baseUrl);
+ urlConnection = (HttpURLConnection) urlObj.openConnection();
+ urlConnection.setConnectTimeout(50000);
+ urlConnection.setRequestMethod("POST");
+ urlConnection.setDoOutput(true);
+ urlConnection.setDoInput(true);
+ urlConnection.setUseCaches(false);
+ urlConnection.addRequestProperty("content-type", mediaType);
+ if (headers != null) {
+ for (String key : headers.keySet()) {
+ urlConnection.addRequestProperty(key, headers.get(key));
+ }
+ }
+ out = urlConnection.getOutputStream();
+ out.write(json.getBytes("utf-8"));
+ out.flush();
+ int resCode = urlConnection.getResponseCode();
+ if (resCode == HttpURLConnection.HTTP_OK || resCode == HttpURLConnection.HTTP_CREATED || resCode == HttpURLConnection.HTTP_ACCEPTED) {
+ in = urlConnection.getInputStream();
+ } else {
+ in = urlConnection.getErrorStream();
+ }
+ bufferedReader = new BufferedReader(new InputStreamReader(in, "utf-8"));
+ StringBuffer temp = new StringBuffer();
+ String line = bufferedReader.readLine();
+ while (line != null) {
+ temp.append(line).append("\r\n");
+ line = bufferedReader.readLine();
+ }
+ String ecod = urlConnection.getContentEncoding();
+ if (ecod == null) {
+ ecod = Charset.forName("utf-8").name();
+ }
+ result = new String(temp.toString().getBytes("utf-8"), ecod);
+ } catch (Exception e) {
+ //System.out.println(e);
+ } finally {
+ if (null != bufferedReader) {
+ try {
+ bufferedReader.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ if (null != out) {
+ try {
+ out.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ if (null != in) {
+ try {
+ in.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ urlConnection.disconnect();
+ }
+ return result;
+ }
+ /**
+ * @Author lvleigang
+ * @Description 获取对象转换成jsonobj
+ * @Date 11:51 下午 2023/7/10
+ * @param key
+ * @param object
+ * @return com.alibaba.fastjson.JSONObject
+ **/
+ protected 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;
+ }
+}
diff --git a/fw-ncc/src/main/webapp/WEB-INF/web.xml b/fw-ncc/src/main/webapp/WEB-INF/web.xml
new file mode 100644
index 00000000..d80081d1
--- /dev/null
+++ b/fw-ncc/src/main/webapp/WEB-INF/web.xml
@@ -0,0 +1,6 @@
+
+
+
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index fc53bd54..c13df556 100644
--- a/pom.xml
+++ b/pom.xml
@@ -12,7 +12,7 @@
-
+ fw-ncc