提交人:陈绍鑫

日期: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()
.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,8 +319,16 @@ public class tsgxApiMappingBillPlugin extends AbstractBillPlugIn {
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();
List<DynamicObject> 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字段名
@ -329,6 +337,31 @@ public class tsgxApiMappingBillPlugin extends AbstractBillPlugIn {
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);
}
} 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;
}
@ -346,7 +379,7 @@ public class tsgxApiMappingBillPlugin extends AbstractBillPlugIn {
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);
JSONArray jsonArray1 = getJSONArrayvalue(bei_elecreceipt, JSONArrayfilteredList, shkd_mapping,map.getString("shkd_fjcsm"));
json.put(shkd_jsonzdm, jsonArray1);
break;
default:
@ -356,6 +389,8 @@ public class tsgxApiMappingBillPlugin extends AbstractBillPlugIn {
}
}
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<DynamicObject> 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:

View File

@ -299,7 +299,7 @@ public class SharePushTaskPlugin extends AbstractTask {
List<DynamicObject> 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,8 +312,16 @@ public class SharePushTaskPlugin extends AbstractTask {
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();
List<DynamicObject> 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字段名
@ -322,7 +330,32 @@ public class SharePushTaskPlugin extends AbstractTask {
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)) {//如果不必填
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);
}
} 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) {
@ -339,7 +372,7 @@ public class SharePushTaskPlugin extends AbstractTask {
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);
JSONArray jsonArray1 = getJSONArrayvalue(bei_elecreceipt, JSONArrayfilteredList, shkd_mapping,map.getString("shkd_fjcsm"));
json.put(shkd_jsonzdm, jsonArray1);
break;
default:
@ -349,6 +382,8 @@ public class SharePushTaskPlugin extends AbstractTask {
}
}
jsonArray.add(json);
}
return jsonArray;
}
@ -379,7 +414,7 @@ public class SharePushTaskPlugin extends AbstractTask {
List<DynamicObject> 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: