diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/form/tsgxApiMappingBillPlugin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/form/tsgxApiMappingBillPlugin.java index f4c49aa..2ac8f5d 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/form/tsgxApiMappingBillPlugin.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/form/tsgxApiMappingBillPlugin.java @@ -129,7 +129,13 @@ public class tsgxApiMappingBillPlugin extends AbstractBillPlugIn { if ("1".equals(shkd_jrrzxx)) {//记录所有 res = doPost(shkd_url, headMap, saveRequestBody, null); logger.info("单据" + bei_elecreceipt.getString("billno") + "返回信息:" + res); - JSONObject otherIsJsonRS = JSONObject.parseObject(res);//获取返回结果 + JSONObject otherIsJsonRS = null;//获取返回结果 + try { + otherIsJsonRS = JSONObject.parseObject(res); + } catch (Exception e) { + logger.info("单据" + bei_elecreceipt.getString("billno") + "转换json出错:" + res); + continue; + } String flag = otherIsJsonRS.getString("flag"); if (resError(flag)) {//失败 resultMap.put("shkd_issuccess", false);//是否成功 @@ -154,7 +160,13 @@ public class tsgxApiMappingBillPlugin extends AbstractBillPlugIn { } else if ("2".equals(shkd_jrrzxx)) {//只记录失败的 res = doPost(shkd_url, headMap, saveRequestBody, null); logger.info("单据" + bei_elecreceipt.getString("billno") + "返回信息:" + res); - JSONObject otherIsJsonRS = JSONObject.parseObject(res);//获取返回结果 + JSONObject otherIsJsonRS = null;//获取返回结果 + try { + otherIsJsonRS = JSONObject.parseObject(res); + } catch (Exception e) { + logger.info("单据" + bei_elecreceipt.getString("billno") + "转换json出错:" + res); + continue; + } String flag = otherIsJsonRS.getString("flag"); if (resError(flag)) {//失败 resultMap.put("shkd_issuccess", false);//是否成功 @@ -182,7 +194,13 @@ public class tsgxApiMappingBillPlugin extends AbstractBillPlugIn { } else if ("3".equals(shkd_jrrzxx)) {//只记录成功的 res = doPost(shkd_url, headMap, saveRequestBody, null); logger.info("单据" + bei_elecreceipt.getString("billno") + "返回信息:" + res); - JSONObject otherIsJsonRS = JSONObject.parseObject(res);//获取返回结果 + JSONObject otherIsJsonRS = null;//获取返回结果 + try { + otherIsJsonRS = JSONObject.parseObject(res); + } catch (Exception e) { + logger.info("单据" + bei_elecreceipt.getString("billno") + "转换json出错:" + res); + continue; + } String flag = otherIsJsonRS.getString("flag"); if (resError(flag)) {//失败 resultMap.put("shkd_issuccess", false);//是否成功 @@ -211,7 +229,13 @@ public class tsgxApiMappingBillPlugin extends AbstractBillPlugIn { } else if ("4".equals(shkd_jrrzxx)) {//不记录 res = doPost(shkd_url, headMap, saveRequestBody, null); logger.info("单据" + bei_elecreceipt.getString("billno") + "返回信息:" + res); - JSONObject otherIsJsonRS = JSONObject.parseObject(res);//获取返回结果 + JSONObject otherIsJsonRS = null;//获取返回结果 + try { + otherIsJsonRS = JSONObject.parseObject(res); + } catch (Exception e) { + logger.info("单据" + bei_elecreceipt.getString("billno") + "转换json出错:" + res); + continue; + } String flag = otherIsJsonRS.getString("flag"); if (resError(flag)) {//失败 resultMap.put("shkd_issuccess", false);//是否成功 @@ -348,13 +372,33 @@ public class tsgxApiMappingBillPlugin extends AbstractBillPlugIn { if (!shkd_sfbt && EmptyUtil.isEmpty(shkd_hqfs)) {//如果不必填 continue; } - if (shkd_djzdms.contains(entryname)){ - String[] parts = shkd_djzdms.split("\\|"); - String value = getvalue(dynamicObject, shkd_hqfs, shkd_jsontartype, parts[1], shkd_mrz); - json.put(shkd_jsonzdm, value); - }else { - String value = getvalue(bei_elecreceipt, shkd_hqfs, shkd_jsontartype, shkd_djzdms, shkd_mrz); - json.put(shkd_jsonzdm, value); + switch (shkd_jsontartype) { + case "对象": + //查找该对象下层级下的 + List filteredList = shkd_mapping.stream() + .filter(obj -> shkd_jsonzdm.equals(obj.getString("shkd_fjcsm"))) + .collect(Collectors.toList()); + JSONObject json1 = getJSONObjectvalue(bei_elecreceipt, filteredList, shkd_mapping); + json.put(shkd_jsonzdm, json1); + break; + case "数组": + //查找该对象下层级下的 + List JSONArrayfilteredList = shkd_mapping.stream() + .filter(obj -> shkd_jsonzdm.equals(obj.getString("shkd_fjcsm"))) + .collect(Collectors.toList()); + JSONArray jsonArray1 = getJSONArrayvalue(bei_elecreceipt, JSONArrayfilteredList, shkd_mapping,shkd_jsonzdm); + json.put(shkd_jsonzdm, jsonArray1); + break; + default: + if (shkd_djzdms.contains(entryname)){ + String[] parts = shkd_djzdms.split("\\|"); + String value = getvalue(dynamicObject, shkd_hqfs, shkd_jsontartype, parts[1], shkd_mrz); + json.put(shkd_jsonzdm, value); + }else { + String value = getvalue(bei_elecreceipt, shkd_hqfs, shkd_jsontartype, shkd_djzdms, shkd_mrz); + json.put(shkd_jsonzdm, value); + } + break; } } diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/task/SharePushTaskPlugin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/task/SharePushTaskPlugin.java index 6e911e8..6a82af0 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/task/SharePushTaskPlugin.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/task/SharePushTaskPlugin.java @@ -75,9 +75,15 @@ public class SharePushTaskPlugin extends AbstractTask { } else if (sourcebillnumber.equals("bei_elecreceipt")) {//电子回单 dzhdqFilter = new QFilter("ismatch", QCP.equals, true); dzhdqFilter = dzhdqFilter.and(new QFilter("shkd_sfcgtsgx", QCP.equals, false)); - } else if (sourcebillnumber.equals("bei_bankbalance")) {//电子回单 + } else if (sourcebillnumber.equals("bei_bankbalance")) {//账号余额 dzhdqFilter = new QFilter("shkd_sfcgtsgx", QCP.equals, false); - } else { + } else if (sourcebillnumber.equals("cas_paybill")) {//付款处理 + dzhdqFilter = new QFilter("shkd_sfcgtsgx", QCP.equals, false); + dzhdqFilter = dzhdqFilter.and(new QFilter("org.shkd_sfjcgx", QCP.equals, true)); + dzhdqFilter = dzhdqFilter.and(new QFilter("paymentidentify.number", QCP.equals, "FKBS01")); + dzhdqFilter = dzhdqFilter.and(new QFilter("billstatus", QCP.in,Arrays.asList("B","A"))); + }else { + logger.info("未找到匹配的单据类型"); return; } @@ -116,7 +122,13 @@ public class SharePushTaskPlugin extends AbstractTask { if ("1".equals(shkd_jrrzxx)) {//记录所有 res = doPost(shkd_url, headMap, saveRequestBody, null); logger.info("单据" + bei_elecreceipt.getString("billno") + "返回信息:" + res); - JSONObject otherIsJsonRS = JSONObject.parseObject(res);//获取返回结果 + JSONObject otherIsJsonRS = null;//获取返回结果 + try { + otherIsJsonRS = JSONObject.parseObject(res); + } catch (Exception e) { + logger.info("单据" + bei_elecreceipt.getString("billno") + "转换json出错:" + res); + continue; + } String flag = otherIsJsonRS.getString("flag"); if (resError(flag)) {//失败 resultMap.put("shkd_issuccess", false);//是否成功 @@ -141,7 +153,13 @@ public class SharePushTaskPlugin extends AbstractTask { } else if ("2".equals(shkd_jrrzxx)) {//只记录失败的 res = doPost(shkd_url, headMap, saveRequestBody, null); logger.info("单据" + bei_elecreceipt.getString("billno") + "返回信息:" + res); - JSONObject otherIsJsonRS = JSONObject.parseObject(res);//获取返回结果 + JSONObject otherIsJsonRS = null;//获取返回结果 + try { + otherIsJsonRS = JSONObject.parseObject(res); + } catch (Exception e) { + logger.info("单据" + bei_elecreceipt.getString("billno") + "转换json出错:" + res); + continue; + } String flag = otherIsJsonRS.getString("flag"); if (resError(flag)) {//失败 resultMap.put("shkd_issuccess", false);//是否成功 @@ -169,7 +187,13 @@ public class SharePushTaskPlugin extends AbstractTask { } else if ("3".equals(shkd_jrrzxx)) {//只记录成功的 res = doPost(shkd_url, headMap, saveRequestBody, null); logger.info("单据" + bei_elecreceipt.getString("billno") + "返回信息:" + res); - JSONObject otherIsJsonRS = JSONObject.parseObject(res);//获取返回结果 + JSONObject otherIsJsonRS = null;//获取返回结果 + try { + otherIsJsonRS = JSONObject.parseObject(res); + } catch (Exception e) { + logger.info("单据" + bei_elecreceipt.getString("billno") + "转换json出错:" + res); + continue; + } String flag = otherIsJsonRS.getString("flag"); if (resError(flag)) {//失败 resultMap.put("shkd_issuccess", false);//是否成功 @@ -198,7 +222,13 @@ public class SharePushTaskPlugin extends AbstractTask { } else if ("4".equals(shkd_jrrzxx)) {//不记录 res = doPost(shkd_url, headMap, saveRequestBody, null); logger.info("单据" + bei_elecreceipt.getString("billno") + "返回信息:" + res); - JSONObject otherIsJsonRS = JSONObject.parseObject(res);//获取返回结果 + JSONObject otherIsJsonRS = null;//获取返回结果 + try { + otherIsJsonRS = JSONObject.parseObject(res); + } catch (Exception e) { + logger.info("单据" + bei_elecreceipt.getString("billno") + "转换json出错:" + res); + continue; + } String flag = otherIsJsonRS.getString("flag"); if (resError(flag)) {//失败 resultMap.put("shkd_issuccess", false);//是否成功 @@ -299,7 +329,7 @@ public class SharePushTaskPlugin extends AbstractTask { List JSONArrayfilteredList = shkd_mapping.stream() .filter(obj -> shkd_jsonzdm.equals(obj.getString("shkd_fjcsm"))) .collect(Collectors.toList()); - JSONArray jsonArray = getJSONArrayvalue(bei_elecreceipt, JSONArrayfilteredList, shkd_mapping,shkd_fjcsm); + JSONArray jsonArray = getJSONArrayvalue(bei_elecreceipt, JSONArrayfilteredList, shkd_mapping,shkd_jsonzdm); otherIsJson.put(shkd_jsonzdm, jsonArray); break; default: @@ -320,7 +350,7 @@ public class SharePushTaskPlugin extends AbstractTask { DynamicObject father = fathers.get(0); String entryname = father.getString("shkd_djzdms"); if (!kd.tmc.fbp.common.util.EmptyUtil.isEmpty(entryname)) {//判断是否是分录字段 - DynamicObjectCollection entry = bei_elecreceipt.getDynamicObjectCollection("entryname"); + DynamicObjectCollection entry = bei_elecreceipt.getDynamicObjectCollection(entryname); for (DynamicObject dynamicObject : entry) { JSONObject json = new JSONObject(); for (DynamicObject map : jsonArrayfilteredList) { @@ -333,13 +363,33 @@ public class SharePushTaskPlugin extends AbstractTask { if (!shkd_sfbt && kd.tmc.fbp.common.util.EmptyUtil.isEmpty(shkd_hqfs)) {//如果不必填 continue; } - if (shkd_djzdms.contains(entryname)){ - String[] parts = shkd_djzdms.split("\\|"); - String value = getvalue(dynamicObject, shkd_hqfs, shkd_jsontartype, parts[1], shkd_mrz); - json.put(shkd_jsonzdm, value); - }else { - String value = getvalue(bei_elecreceipt, shkd_hqfs, shkd_jsontartype, shkd_djzdms, shkd_mrz); - json.put(shkd_jsonzdm, value); + switch (shkd_jsontartype) { + case "对象": + //查找该对象下层级下的 + List filteredList = shkd_mapping.stream() + .filter(obj -> shkd_jsonzdm.equals(obj.getString("shkd_fjcsm"))) + .collect(Collectors.toList()); + JSONObject json1 = getJSONObjectvalue(bei_elecreceipt, filteredList, shkd_mapping); + json.put(shkd_jsonzdm, json1); + break; + case "数组": + //查找该对象下层级下的 + List JSONArrayfilteredList = shkd_mapping.stream() + .filter(obj -> shkd_jsonzdm.equals(obj.getString("shkd_fjcsm"))) + .collect(Collectors.toList()); + JSONArray jsonArray1 = getJSONArrayvalue(bei_elecreceipt, JSONArrayfilteredList, shkd_mapping,shkd_jsonzdm); + json.put(shkd_jsonzdm, jsonArray1); + break; + default: + if (shkd_djzdms.contains(entryname)){ + String[] parts = shkd_djzdms.split("\\|"); + String value = getvalue(dynamicObject, shkd_hqfs, shkd_jsontartype, parts[1], shkd_mrz); + json.put(shkd_jsonzdm, value); + }else { + String value = getvalue(bei_elecreceipt, shkd_hqfs, shkd_jsontartype, shkd_djzdms, shkd_mrz); + json.put(shkd_jsonzdm, value); + } + break; } } @@ -372,7 +422,7 @@ public class SharePushTaskPlugin extends AbstractTask { List JSONArrayfilteredList = shkd_mapping.stream() .filter(obj -> shkd_jsonzdm.equals(obj.getString("shkd_fjcsm"))) .collect(Collectors.toList()); - JSONArray jsonArray1 = getJSONArrayvalue(bei_elecreceipt, JSONArrayfilteredList, shkd_mapping,map.getString("shkd_fjcsm")); + JSONArray jsonArray1 = getJSONArrayvalue(bei_elecreceipt, JSONArrayfilteredList, shkd_mapping,shkd_jsonzdm); json.put(shkd_jsonzdm, jsonArray1); break; default: