提交人:陈绍鑫

日期:2025/01/07 11:30
内容:推送共享优化
This commit is contained in:
陈绍鑫 2026-01-08 14:16:45 +08:00
parent 06cc7a55c9
commit db7a6ad97f
2 changed files with 141 additions and 71 deletions

View File

@ -306,7 +306,7 @@ public class tsgxApiMappingBillPlugin extends AbstractBillPlugIn {
List<DynamicObject> JSONArrayfilteredList = shkd_mapping.stream() List<DynamicObject> JSONArrayfilteredList = shkd_mapping.stream()
.filter(obj -> shkd_jsonzdm.equals(obj.getString("shkd_fjcsm"))) .filter(obj -> shkd_jsonzdm.equals(obj.getString("shkd_fjcsm")))
.collect(Collectors.toList()); .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); otherIsJson.put(shkd_jsonzdm, jsonArray);
break; break;
default: default:
@ -319,43 +319,78 @@ public class tsgxApiMappingBillPlugin extends AbstractBillPlugIn {
return otherIsJson.toJSONString(); return otherIsJson.toJSONString();
} }
private JSONArray getJSONArrayvalue(DynamicObject bei_elecreceipt, List<DynamicObject> jsonArrayfilteredList, DynamicObjectCollection shkd_mapping) { private JSONArray getJSONArrayvalue(DynamicObject bei_elecreceipt, List<DynamicObject> jsonArrayfilteredList, DynamicObjectCollection shkd_mapping, String shkd_fjcsm) {
JSONArray jsonArray = new JSONArray(); JSONArray jsonArray = new JSONArray();
JSONObject json = new JSONObject(); List<DynamicObject> fathers = shkd_mapping.stream()
for (DynamicObject map : jsonArrayfilteredList) { .filter(obj -> shkd_fjcsm.equals(obj.getString("shkd_jsonzdm")))
String shkd_jsonzdm = map.getString("shkd_jsonzdm");//JSON字段名 .collect(Collectors.toList());
String shkd_hqfs = map.getString("shkd_hqfs");//获取方式 DynamicObject father = fathers.get(0);
String shkd_jsontartype = map.getString("shkd_jsontartype");//JSON字段类型 String entryname = father.getString("shkd_djzdms");
String shkd_djzdms = map.getString("shkd_djzdms");//JSON字段类型 if (!EmptyUtil.isEmpty(entryname)) {//判断是否是分录字段
String shkd_mrz = map.getString("shkd_mrz");//默认值 DynamicObjectCollection entry = bei_elecreceipt.getDynamicObjectCollection("entryname");
boolean shkd_sfbt = map.getBoolean("shkd_sfbt");//是否必填 for (DynamicObject dynamicObject : entry) {
if (!shkd_sfbt && EmptyUtil.isEmpty(shkd_hqfs)) {//如果不必填 JSONObject json = new JSONObject();
continue; 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) { } else {
case "对象": JSONObject json = new JSONObject();
//查找该对象下层级下的 for (DynamicObject map : jsonArrayfilteredList) {
List<DynamicObject> filteredList = shkd_mapping.stream() String shkd_jsonzdm = map.getString("shkd_jsonzdm");//JSON字段名
.filter(obj -> shkd_jsonzdm.equals(obj.getString("shkd_fjcsm"))) String shkd_hqfs = map.getString("shkd_hqfs");//获取方式
.collect(Collectors.toList()); String shkd_jsontartype = map.getString("shkd_jsontartype");//JSON字段类型
JSONObject json1 = getJSONObjectvalue(bei_elecreceipt, filteredList, shkd_mapping); String shkd_djzdms = map.getString("shkd_djzdms");//单据字段标识
json.put(shkd_jsonzdm, json1); String shkd_mrz = map.getString("shkd_mrz");//默认值
break; boolean shkd_sfbt = map.getBoolean("shkd_sfbt");//是否必填
case "数组":
//查找该对象下层级下的 if (!shkd_sfbt && EmptyUtil.isEmpty(shkd_hqfs)) {//如果不必填
List<DynamicObject> JSONArrayfilteredList = shkd_mapping.stream() continue;
.filter(obj -> shkd_jsonzdm.equals(obj.getString("shkd_fjcsm"))) }
.collect(Collectors.toList()); switch (shkd_jsontartype) {
JSONArray jsonArray1 = getJSONArrayvalue(bei_elecreceipt, JSONArrayfilteredList, shkd_mapping); case "对象":
json.put(shkd_jsonzdm, jsonArray1); //查找该对象下层级下的
break; List<DynamicObject> filteredList = shkd_mapping.stream()
default: .filter(obj -> shkd_jsonzdm.equals(obj.getString("shkd_fjcsm")))
String value = getvalue(bei_elecreceipt, shkd_hqfs, shkd_jsontartype, shkd_djzdms, shkd_mrz); .collect(Collectors.toList());
json.put(shkd_jsonzdm, value); JSONObject json1 = getJSONObjectvalue(bei_elecreceipt, filteredList, shkd_mapping);
break; json.put(shkd_jsonzdm, json1);
break;
case "数组":
//查找该对象下层级下的
List<DynamicObject> 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; return jsonArray;
} }
@ -366,7 +401,7 @@ public class tsgxApiMappingBillPlugin extends AbstractBillPlugIn {
String shkd_jsonzdm = map.getString("shkd_jsonzdm");//JSON字段名 String shkd_jsonzdm = map.getString("shkd_jsonzdm");//JSON字段名
String shkd_hqfs = map.getString("shkd_hqfs");//获取方式 String shkd_hqfs = map.getString("shkd_hqfs");//获取方式
String shkd_jsontartype = map.getString("shkd_jsontartype");//JSON字段类型 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");//默认值 String shkd_mrz = map.getString("shkd_mrz");//默认值
boolean shkd_sfbt = map.getBoolean("shkd_sfbt");//是否必填 boolean shkd_sfbt = map.getBoolean("shkd_sfbt");//是否必填
if (!shkd_sfbt && EmptyUtil.isEmpty(shkd_hqfs)) {//如果不必填 if (!shkd_sfbt && EmptyUtil.isEmpty(shkd_hqfs)) {//如果不必填
@ -386,7 +421,7 @@ public class tsgxApiMappingBillPlugin extends AbstractBillPlugIn {
List<DynamicObject> JSONArrayfilteredList = shkd_mapping.stream() List<DynamicObject> JSONArrayfilteredList = shkd_mapping.stream()
.filter(obj -> shkd_jsonzdm.equals(obj.getString("shkd_fjcsm"))) .filter(obj -> shkd_jsonzdm.equals(obj.getString("shkd_fjcsm")))
.collect(Collectors.toList()); .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); json.put(shkd_jsonzdm, jsonArray);
break; break;
default: default:

View File

@ -299,7 +299,7 @@ public class SharePushTaskPlugin extends AbstractTask {
List<DynamicObject> JSONArrayfilteredList = shkd_mapping.stream() List<DynamicObject> JSONArrayfilteredList = shkd_mapping.stream()
.filter(obj -> shkd_jsonzdm.equals(obj.getString("shkd_fjcsm"))) .filter(obj -> shkd_jsonzdm.equals(obj.getString("shkd_fjcsm")))
.collect(Collectors.toList()); .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); otherIsJson.put(shkd_jsonzdm, jsonArray);
break; break;
default: default:
@ -312,43 +312,78 @@ public class SharePushTaskPlugin extends AbstractTask {
return otherIsJson.toJSONString(); return otherIsJson.toJSONString();
} }
private JSONArray getJSONArrayvalue(DynamicObject bei_elecreceipt, List<DynamicObject> jsonArrayfilteredList, DynamicObjectCollection shkd_mapping) { private JSONArray getJSONArrayvalue(DynamicObject bei_elecreceipt, List<DynamicObject> jsonArrayfilteredList, DynamicObjectCollection shkd_mapping, String shkd_fjcsm) {
JSONArray jsonArray = new JSONArray(); JSONArray jsonArray = new JSONArray();
JSONObject json = new JSONObject(); List<DynamicObject> fathers = shkd_mapping.stream()
for (DynamicObject map : jsonArrayfilteredList) { .filter(obj -> shkd_fjcsm.equals(obj.getString("shkd_jsonzdm")))
String shkd_jsonzdm = map.getString("shkd_jsonzdm");//JSON字段名 .collect(Collectors.toList());
String shkd_hqfs = map.getString("shkd_hqfs");//获取方式 DynamicObject father = fathers.get(0);
String shkd_jsontartype = map.getString("shkd_jsontartype");//JSON字段类型 String entryname = father.getString("shkd_djzdms");
String shkd_djzdms = map.getString("shkd_djzdms");//JSON字段类型 if (!kd.tmc.fbp.common.util.EmptyUtil.isEmpty(entryname)) {//判断是否是分录字段
String shkd_mrz = map.getString("shkd_mrz");//默认值 DynamicObjectCollection entry = bei_elecreceipt.getDynamicObjectCollection("entryname");
boolean shkd_sfbt = map.getBoolean("shkd_sfbt");//是否必填 for (DynamicObject dynamicObject : entry) {
if (!shkd_sfbt && EmptyUtil.isEmpty(shkd_hqfs)) {//如果不必填 JSONObject json = new JSONObject();
continue; 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) { } else {
case "对象": JSONObject json = new JSONObject();
//查找该对象下层级下的 for (DynamicObject map : jsonArrayfilteredList) {
List<DynamicObject> filteredList = shkd_mapping.stream() String shkd_jsonzdm = map.getString("shkd_jsonzdm");//JSON字段名
.filter(obj -> shkd_jsonzdm.equals(obj.getString("shkd_fjcsm"))) String shkd_hqfs = map.getString("shkd_hqfs");//获取方式
.collect(Collectors.toList()); String shkd_jsontartype = map.getString("shkd_jsontartype");//JSON字段类型
JSONObject json1 = getJSONObjectvalue(bei_elecreceipt, filteredList, shkd_mapping); String shkd_djzdms = map.getString("shkd_djzdms");//单据字段标识
json.put(shkd_jsonzdm, json1); String shkd_mrz = map.getString("shkd_mrz");//默认值
break; boolean shkd_sfbt = map.getBoolean("shkd_sfbt");//是否必填
case "数组":
//查找该对象下层级下的 if (!shkd_sfbt && kd.tmc.fbp.common.util.EmptyUtil.isEmpty(shkd_hqfs)) {//如果不必填
List<DynamicObject> JSONArrayfilteredList = shkd_mapping.stream() continue;
.filter(obj -> shkd_jsonzdm.equals(obj.getString("shkd_fjcsm"))) }
.collect(Collectors.toList()); switch (shkd_jsontartype) {
JSONArray jsonArray1 = getJSONArrayvalue(bei_elecreceipt, JSONArrayfilteredList, shkd_mapping); case "对象":
json.put(shkd_jsonzdm, jsonArray1); //查找该对象下层级下的
break; List<DynamicObject> filteredList = shkd_mapping.stream()
default: .filter(obj -> shkd_jsonzdm.equals(obj.getString("shkd_fjcsm")))
String value = getvalue(bei_elecreceipt, shkd_hqfs, shkd_jsontartype, shkd_djzdms, shkd_mrz); .collect(Collectors.toList());
json.put(shkd_jsonzdm, value); JSONObject json1 = getJSONObjectvalue(bei_elecreceipt, filteredList, shkd_mapping);
break; json.put(shkd_jsonzdm, json1);
break;
case "数组":
//查找该对象下层级下的
List<DynamicObject> 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; return jsonArray;
} }
@ -379,7 +414,7 @@ public class SharePushTaskPlugin extends AbstractTask {
List<DynamicObject> JSONArrayfilteredList = shkd_mapping.stream() List<DynamicObject> JSONArrayfilteredList = shkd_mapping.stream()
.filter(obj -> shkd_jsonzdm.equals(obj.getString("shkd_fjcsm"))) .filter(obj -> shkd_jsonzdm.equals(obj.getString("shkd_fjcsm")))
.collect(Collectors.toList()); .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); json.put(shkd_jsonzdm, jsonArray);
break; break;
default: default: