From db7a6ad97f3ce20260a4ab52372ff104db41b57c Mon Sep 17 00:00:00 2001 From: csx <1981897232@qq.com> Date: Thu, 8 Jan 2026 14:16:45 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BA=BA=EF=BC=9A=E9=99=88?= =?UTF-8?q?=E7=BB=8D=E9=91=AB=20=E6=97=A5=E6=9C=9F=EF=BC=9A2025/01/07=2011?= =?UTF-8?q?=EF=BC=9A30=20=E5=86=85=E5=AE=B9:=E6=8E=A8=E9=80=81=E5=85=B1?= =?UTF-8?q?=E4=BA=AB=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plugin/form/tsgxApiMappingBillPlugin.java | 107 ++++++++++++------ .../sys/plugin/task/SharePushTaskPlugin.java | 105 +++++++++++------ 2 files changed, 141 insertions(+), 71 deletions(-) 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 c388371..94aeca6 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 @@ -306,7 +306,7 @@ public class tsgxApiMappingBillPlugin extends AbstractBillPlugIn { 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); + JSONArray jsonArray = getJSONArrayvalue(bei_elecreceipt, JSONArrayfilteredList, shkd_mapping, shkd_fjcsm); otherIsJson.put(shkd_jsonzdm, jsonArray); break; default: @@ -319,43 +319,78 @@ public class tsgxApiMappingBillPlugin extends AbstractBillPlugIn { return otherIsJson.toJSONString(); } - private JSONArray getJSONArrayvalue(DynamicObject bei_elecreceipt, List jsonArrayfilteredList, DynamicObjectCollection shkd_mapping) { + private JSONArray getJSONArrayvalue(DynamicObject bei_elecreceipt, List jsonArrayfilteredList, DynamicObjectCollection shkd_mapping, String shkd_fjcsm) { JSONArray jsonArray = new JSONArray(); - JSONObject json = new JSONObject(); - for (DynamicObject map : jsonArrayfilteredList) { - String shkd_jsonzdm = map.getString("shkd_jsonzdm");//JSON字段名 - String shkd_hqfs = map.getString("shkd_hqfs");//获取方式 - String shkd_jsontartype = map.getString("shkd_jsontartype");//JSON字段类型 - String shkd_djzdms = map.getString("shkd_djzdms");//JSON字段类型 - String shkd_mrz = map.getString("shkd_mrz");//默认值 - boolean shkd_sfbt = map.getBoolean("shkd_sfbt");//是否必填 - if (!shkd_sfbt && EmptyUtil.isEmpty(shkd_hqfs)) {//如果不必填 - continue; + List fathers = shkd_mapping.stream() + .filter(obj -> shkd_fjcsm.equals(obj.getString("shkd_jsonzdm"))) + .collect(Collectors.toList()); + DynamicObject father = fathers.get(0); + String entryname = father.getString("shkd_djzdms"); + if (!EmptyUtil.isEmpty(entryname)) {//判断是否是分录字段 + DynamicObjectCollection entry = bei_elecreceipt.getDynamicObjectCollection("entryname"); + for (DynamicObject dynamicObject : entry) { + JSONObject json = new JSONObject(); + for (DynamicObject map : jsonArrayfilteredList) { + String shkd_jsonzdm = map.getString("shkd_jsonzdm");//JSON字段名 + String shkd_hqfs = map.getString("shkd_hqfs");//获取方式 + String shkd_jsontartype = map.getString("shkd_jsontartype");//JSON字段类型 + String shkd_djzdms = map.getString("shkd_djzdms");//JSON字段类型 + String shkd_mrz = map.getString("shkd_mrz");//默认值 + boolean shkd_sfbt = map.getBoolean("shkd_sfbt");//是否必填 + 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); + } + + } + jsonArray.add(json); } - 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); - json.put(shkd_jsonzdm, jsonArray1); - break; - default: - String value = getvalue(bei_elecreceipt, shkd_hqfs, shkd_jsontartype, shkd_djzdms, shkd_mrz); - json.put(shkd_jsonzdm, value); - break; + } else { + JSONObject json = new JSONObject(); + for (DynamicObject map : jsonArrayfilteredList) { + String shkd_jsonzdm = map.getString("shkd_jsonzdm");//JSON字段名 + String shkd_hqfs = map.getString("shkd_hqfs");//获取方式 + String shkd_jsontartype = map.getString("shkd_jsontartype");//JSON字段类型 + String shkd_djzdms = map.getString("shkd_djzdms");//单据字段标识 + String shkd_mrz = map.getString("shkd_mrz");//默认值 + boolean shkd_sfbt = map.getBoolean("shkd_sfbt");//是否必填 + + if (!shkd_sfbt && EmptyUtil.isEmpty(shkd_hqfs)) {//如果不必填 + continue; + } + 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,map.getString("shkd_fjcsm")); + json.put(shkd_jsonzdm, jsonArray1); + break; + default: + String value = getvalue(bei_elecreceipt, shkd_hqfs, shkd_jsontartype, shkd_djzdms, shkd_mrz); + json.put(shkd_jsonzdm, value); + break; + } } + jsonArray.add(json); } - jsonArray.add(json); + return jsonArray; } @@ -366,7 +401,7 @@ public class tsgxApiMappingBillPlugin extends AbstractBillPlugIn { String shkd_jsonzdm = map.getString("shkd_jsonzdm");//JSON字段名 String shkd_hqfs = map.getString("shkd_hqfs");//获取方式 String shkd_jsontartype = map.getString("shkd_jsontartype");//JSON字段类型 - String shkd_djzdms = map.getString("shkd_djzdms");//JSON字段类型 + String shkd_djzdms = map.getString("shkd_djzdms");//单据字段标识 String shkd_mrz = map.getString("shkd_mrz");//默认值 boolean shkd_sfbt = map.getBoolean("shkd_sfbt");//是否必填 if (!shkd_sfbt && EmptyUtil.isEmpty(shkd_hqfs)) {//如果不必填 @@ -386,7 +421,7 @@ public class tsgxApiMappingBillPlugin extends AbstractBillPlugIn { 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); + JSONArray jsonArray = getJSONArrayvalue(bei_elecreceipt, JSONArrayfilteredList, shkd_mapping,map.getString("shkd_fjcsm")); json.put(shkd_jsonzdm, jsonArray); break; default: 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 08e6e8b..6e911e8 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 @@ -299,7 +299,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); + JSONArray jsonArray = getJSONArrayvalue(bei_elecreceipt, JSONArrayfilteredList, shkd_mapping,shkd_fjcsm); otherIsJson.put(shkd_jsonzdm, jsonArray); break; default: @@ -312,43 +312,78 @@ public class SharePushTaskPlugin extends AbstractTask { return otherIsJson.toJSONString(); } - private JSONArray getJSONArrayvalue(DynamicObject bei_elecreceipt, List jsonArrayfilteredList, DynamicObjectCollection shkd_mapping) { + private JSONArray getJSONArrayvalue(DynamicObject bei_elecreceipt, List jsonArrayfilteredList, DynamicObjectCollection shkd_mapping, String shkd_fjcsm) { JSONArray jsonArray = new JSONArray(); - JSONObject json = new JSONObject(); - for (DynamicObject map : jsonArrayfilteredList) { - String shkd_jsonzdm = map.getString("shkd_jsonzdm");//JSON字段名 - String shkd_hqfs = map.getString("shkd_hqfs");//获取方式 - String shkd_jsontartype = map.getString("shkd_jsontartype");//JSON字段类型 - String shkd_djzdms = map.getString("shkd_djzdms");//JSON字段类型 - String shkd_mrz = map.getString("shkd_mrz");//默认值 - boolean shkd_sfbt = map.getBoolean("shkd_sfbt");//是否必填 - if (!shkd_sfbt && EmptyUtil.isEmpty(shkd_hqfs)) {//如果不必填 - continue; + List fathers = shkd_mapping.stream() + .filter(obj -> shkd_fjcsm.equals(obj.getString("shkd_jsonzdm"))) + .collect(Collectors.toList()); + 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"); + for (DynamicObject dynamicObject : entry) { + JSONObject json = new JSONObject(); + for (DynamicObject map : jsonArrayfilteredList) { + String shkd_jsonzdm = map.getString("shkd_jsonzdm");//JSON字段名 + String shkd_hqfs = map.getString("shkd_hqfs");//获取方式 + String shkd_jsontartype = map.getString("shkd_jsontartype");//JSON字段类型 + String shkd_djzdms = map.getString("shkd_djzdms");//JSON字段类型 + String shkd_mrz = map.getString("shkd_mrz");//默认值 + boolean shkd_sfbt = map.getBoolean("shkd_sfbt");//是否必填 + 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); + } + + } + jsonArray.add(json); } - 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); - json.put(shkd_jsonzdm, jsonArray1); - break; - default: - String value = getvalue(bei_elecreceipt, shkd_hqfs, shkd_jsontartype, shkd_djzdms, shkd_mrz); - json.put(shkd_jsonzdm, value); - break; + } else { + JSONObject json = new JSONObject(); + for (DynamicObject map : jsonArrayfilteredList) { + String shkd_jsonzdm = map.getString("shkd_jsonzdm");//JSON字段名 + String shkd_hqfs = map.getString("shkd_hqfs");//获取方式 + String shkd_jsontartype = map.getString("shkd_jsontartype");//JSON字段类型 + String shkd_djzdms = map.getString("shkd_djzdms");//单据字段标识 + String shkd_mrz = map.getString("shkd_mrz");//默认值 + boolean shkd_sfbt = map.getBoolean("shkd_sfbt");//是否必填 + + if (!shkd_sfbt && kd.tmc.fbp.common.util.EmptyUtil.isEmpty(shkd_hqfs)) {//如果不必填 + continue; + } + 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,map.getString("shkd_fjcsm")); + json.put(shkd_jsonzdm, jsonArray1); + break; + default: + String value = getvalue(bei_elecreceipt, shkd_hqfs, shkd_jsontartype, shkd_djzdms, shkd_mrz); + json.put(shkd_jsonzdm, value); + break; + } } + jsonArray.add(json); } - jsonArray.add(json); + return jsonArray; } @@ -379,7 +414,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); + JSONArray jsonArray = getJSONArrayvalue(bei_elecreceipt, JSONArrayfilteredList, shkd_mapping,map.getString("shkd_fjcsm")); json.put(shkd_jsonzdm, jsonArray); break; default: