Skip to content

Commit

Permalink
fix: 记录转换预览时不显示明细导入
Browse files Browse the repository at this point in the history
  • Loading branch information
getrebuild committed Jan 22, 2025
1 parent 45d0985 commit dcf1c0b
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 53 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -21,14 +21,18 @@
import com.rebuild.core.configuration.general.TransformManager;
import com.rebuild.core.metadata.EntityHelper;
import com.rebuild.core.metadata.MetadataHelper;
import com.rebuild.core.metadata.easymeta.EasyMetaFactory;
import com.rebuild.core.service.general.GeneralEntityService;
import com.rebuild.core.service.query.QueryHelper;
import com.rebuild.core.support.CommonsLog;
import lombok.extern.slf4j.Slf4j;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;

/**
* @author Zixin
Expand Down Expand Up @@ -175,6 +179,12 @@ public JSON preview(ID sourceRecordId, ID specMainId, ID targetExistsRecordId) {
}

((JSONObject) formModel).put(GeneralEntityService.HAS_DETAILS, formModelDetailsMap);

// 明细导入
if (targetEntity.getDetailEntity() != null) {
((JSONObject) formModel).put("detailImports", buildDetailImports39(targetEntity));
}

return formModel;
}

Expand All @@ -190,21 +200,6 @@ private void mergeExistsAndTarget(Record transTargetRecord) {
transTargetRecord.removeValue(EntityHelper.OwningUser);
transTargetRecord.removeValue(EntityHelper.OwningDept);
}

// if (isPreview) {
// Record existsRecordSnap = Application.getQueryFactory().recordNoFilter(targetExistsRecordId);
// for (Field field : existsRecordSnap.getEntity().getFields()) {
// EasyField easyField = EasyMetaFactory.valueOf(field);
// if (MetadataHelper.isCommonsField(field) || easyField.getDisplayType() == DisplayType.SERIES) {
// if (field.getType() == FieldType.PRIMARY) continue;
//
// String fieldName = field.getName();
// if (EntityHelper.AutoId.equals(fieldName) || EntityHelper.QuickCode.equals(fieldName)) continue;
//
// transTargetRecord.setObjectValue(fieldName, existsRecordSnap.getObjectValue(fieldName));
// }
// }
// }
}

// 获取主记录(如果是明细的话)
Expand All @@ -215,4 +210,44 @@ private ID forceGetSpecMainId(ID targetRecordId) {
}
return null;
}

// ~~

/**
* @param mainEntity
* @return
*/
public static List<Object> buildDetailImports39(Entity mainEntity) {
List<Object> alist = new ArrayList<>();
for (Entity de : mainEntity.getDetialEntities()) {
List<ConfigBean> confImports = TransformManager.instance.getDetailImports(de.getName());
if (!confImports.isEmpty()) {
for (ConfigBean c : confImports) {
JSONObject trans = (JSONObject) EasyMetaFactory.valueOf(c.getString("source")).toJSON();
trans.put("transid", c.getID("id"));
trans.put("transName", c.getString("name"));

int ifAuto = ((JSONObject) c.getJSON("config")).getIntValue("importsMode2Auto");
if (ifAuto > 0) {
JSONArray importsFilter = ((JSONObject) c.getJSON("config")).getJSONArray("importsFilter");
Set<String> autoFields = new HashSet<>();
for (Object o : importsFilter) {
String name = ((JSONArray) o).getString(0);
autoFields.add(name.split("\\.")[1]);
}

if (!autoFields.isEmpty()) {
trans.put("auto", ifAuto);
trans.put("autoFields", autoFields);
}
}

trans.put("detailName", de.getName());
alist.add(trans);
}

}
}
return alist;
}
}
41 changes: 3 additions & 38 deletions src/main/java/com/rebuild/web/general/GeneralModelController.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@
import com.rebuild.core.configuration.general.ViewAddonsManager;
import com.rebuild.core.metadata.EntityHelper;
import com.rebuild.core.metadata.MetadataHelper;
import com.rebuild.core.metadata.easymeta.EasyMetaFactory;
import com.rebuild.core.privileges.UserHelper;
import com.rebuild.core.service.general.transform.RecordTransfomer39;
import com.rebuild.core.service.query.QueryHelper;
import com.rebuild.core.support.ConfigurationItem;
import com.rebuild.core.support.RebuildConfiguration;
Expand All @@ -43,13 +43,10 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Set;

/**
* 表单/视图
Expand Down Expand Up @@ -149,41 +146,9 @@ else if (FormsBuilder.DV_MAINID.equals(mainid) || FormsBuilder.DV_MAINID_FJS.equ
FormsBuilder.instance.setFormInitialValue(modelEntity, model, (JSONObject) initialVal);
}

// v3.1 明细导入配置
// v3.4 FIXME ND只有第一个实体支持转换
// v3.7 ND
// 明细导入
if (modelEntity.getDetailEntity() != null) {
List<Object> alist = new ArrayList<>();
for (Entity de : modelEntity.getDetialEntities()) {
List<ConfigBean> confImports = TransformManager.instance.getDetailImports(de.getName());
if (!confImports.isEmpty()) {
for (ConfigBean c : confImports) {
JSONObject trans = (JSONObject) EasyMetaFactory.valueOf(c.getString("source")).toJSON();
trans.put("transid", c.getID("id"));
trans.put("transName", c.getString("name"));

int ifAuto = ((JSONObject) c.getJSON("config")).getIntValue("importsMode2Auto");
if (ifAuto > 0) {
JSONArray importsFilter = ((JSONObject) c.getJSON("config")).getJSONArray("importsFilter");
Set<String> autoFields = new HashSet<>();
for (Object o : importsFilter) {
String name = ((JSONArray) o).getString(0);
autoFields.add(name.split("\\.")[1]);
}

if (!autoFields.isEmpty()) {
trans.put("auto", ifAuto);
trans.put("autoFields", autoFields);
}
}

trans.put("detailName", de.getName());
alist.add(trans);
}

}
((JSONObject) model).put("detailImports", alist);
}
((JSONObject) model).put("detailImports", RecordTransfomer39.buildDetailImports39(modelEntity));
}

return model;
Expand Down

0 comments on commit dcf1c0b

Please sign in to comment.