|
@@ -26,7 +26,8 @@ public class SubConfigServiceImpl implements SubConfigService {
|
|
|
private final String[] JSON_NAME = {
|
|
|
"urladdr", "insttype", "roption", "global", "base", "editPage", "id",
|
|
|
"rowEdit", "layout", "form", "data", "tableColumnName", "columns",
|
|
|
- "tableColumnType", "tableName", "label"
|
|
|
+ "tableColumnType", "tableName", "label","dataSource","formData",
|
|
|
+ "insttype","heads","field"
|
|
|
};
|
|
|
|
|
|
private final String[] TYPE_NAME = {
|
|
@@ -44,20 +45,27 @@ public class SubConfigServiceImpl implements SubConfigService {
|
|
|
* @return {@link List< KdSubsystemDetailVo>}
|
|
|
* @date 2024/1/8 11:48
|
|
|
* @author shangmi
|
|
|
- *
|
|
|
*/
|
|
|
|
|
|
@Override
|
|
|
- public List<KdSubsystemDetailVo> getModulesById(String id) {
|
|
|
+ public R getModulesById(String id) {
|
|
|
R sysModule = rwAdminFeign.infoSysModule(id);
|
|
|
// 获得pagePartID
|
|
|
JSONObject module = JSONUtil.parseObj(sysModule.getData());
|
|
|
- String[] split = module.get(JSON_NAME[0]).toString().split("/");
|
|
|
+ Object urlAddr = module.get(JSON_NAME[0]);
|
|
|
+ if (urlAddr==null){
|
|
|
+ return R.error("该菜单未配置编辑页或页编辑,请重新选择!");
|
|
|
+ }
|
|
|
+ String[] split = urlAddr.toString().split("/");
|
|
|
String pagePartId = split[split.length - 1];
|
|
|
+
|
|
|
// 获取编辑页信息
|
|
|
String pagePart = getPagePart(pagePartId);
|
|
|
+ if (pagePart==null){
|
|
|
+ return R.error("该菜单未配置编辑页或页编辑,请重新选择!");
|
|
|
+ }
|
|
|
//查询页面展示的所有字段
|
|
|
- return getTableNameByData(pagePart);
|
|
|
+ return R.ok(getTableNameByData(pagePart));
|
|
|
}
|
|
|
|
|
|
|
|
@@ -71,6 +79,9 @@ public class SubConfigServiceImpl implements SubConfigService {
|
|
|
*/
|
|
|
|
|
|
public String getPagePart(String pagePartId) {
|
|
|
+ if (pagePartId == null){
|
|
|
+ return null;
|
|
|
+ }
|
|
|
R sysPagePart = rwAdminFeign.infoPagePart(pagePartId);
|
|
|
JSONObject pagePart = JSONUtil.parseObj(sysPagePart.getData());
|
|
|
if (InsttypeEnum.TABLE.getMassage().equals(pagePart.get(JSON_NAME[1], String.class)) && !JSONUtil.parseObj(
|
|
@@ -101,42 +112,46 @@ public class SubConfigServiceImpl implements SubConfigService {
|
|
|
*/
|
|
|
|
|
|
public List<KdSubsystemDetailVo> getTableNameByData(String pagePart) {
|
|
|
- List form = JSONUtil.parseObj(JSONUtil.parseObj(pagePart).get(JSON_NAME[8])).get(JSON_NAME[9], List.class);
|
|
|
- List tableColumNameList = (List) form.stream().map(info -> JSONUtil.parseObj(JSONUtil.parseObj(info).get(JSON_NAME[10]))
|
|
|
- .get(JSON_NAME[11], String.class)).filter(Objects::nonNull).collect(Collectors.toList());
|
|
|
- List base = JSONUtil.parseObj(JSONUtil.parseObj(pagePart).get(JSON_NAME[12])).get(JSON_NAME[4], List.class);
|
|
|
- List<KdSubsystemDetailVo> kdSubsystemDetailList = (List<KdSubsystemDetailVo>) base.stream().map(info -> {
|
|
|
+ boolean instType = "table".equals(JSONUtil.parseObj(JSONUtil.parseObj(JSONUtil.parseObj(pagePart).get(JSON_NAME[16])).get(JSON_NAME[17])).get(JSON_NAME[18], String.class));
|
|
|
+ //获得layout中的form
|
|
|
+ List<String> form = JSONUtil.toList(JSONUtil.parseObj(JSONUtil.parseObj(pagePart).get(JSON_NAME[8])).get(instType?JSON_NAME[19]:JSON_NAME[9], String.class),String.class);
|
|
|
+ //将页面上展示的真实字段获取到
|
|
|
+ List<String> tableColumNameList = form.stream().map(info -> instType?JSONUtil.parseObj(info).get(JSON_NAME[20], String.class)
|
|
|
+ :JSONUtil.parseObj(JSONUtil.parseObj(info).get(JSON_NAME[10])).get(JSON_NAME[11], String.class))
|
|
|
+ .filter(Objects::nonNull).collect(Collectors.toList());
|
|
|
+ //获取到columns中的base集合
|
|
|
+ List<String> base = JSONUtil.toList(JSONUtil.parseObj(JSONUtil.parseObj(pagePart).get(JSON_NAME[12])).get(JSON_NAME[4],String.class),String.class);
|
|
|
+ //遍历获取base中的信息
|
|
|
+ return base.stream()
|
|
|
+ .filter(info ->tableColumNameList.contains(JSONUtil.parseObj(JSONUtil.parseObj(info).get(JSON_NAME[4])).get(JSON_NAME[11], String.class)) )
|
|
|
+ .map(info -> {
|
|
|
KdSubsystemDetailVo kdSubsystemDetail = new KdSubsystemDetailVo();
|
|
|
JSONObject json = JSONUtil.parseObj(JSONUtil.parseObj(info).get(JSON_NAME[4]));
|
|
|
- String tablecolumnnane = json.get(JSON_NAME[11], String.class);
|
|
|
- if (!tableColumNameList.contains(tablecolumnnane)){
|
|
|
- return null;
|
|
|
- }
|
|
|
- kdSubsystemDetail.setTablecolumnnane(tablecolumnnane)
|
|
|
+ String tableColumnNane = json.get(JSON_NAME[11], String.class);
|
|
|
+ kdSubsystemDetail.setTablecolumnnane(tableColumnNane)
|
|
|
.setTablecolumntype(json.get(JSON_NAME[13], String.class))
|
|
|
.setTablename(json.get(JSON_NAME[14], String.class))
|
|
|
.setLabel(json.get(JSON_NAME[15], String.class));
|
|
|
JSONObject controlType = JSONUtil.parseObj(JSONUtil.parseObj(json.get(TYPE_NAME[0])));
|
|
|
- String enumtype = controlType.get(TYPE_NAME[1], String.class);
|
|
|
+ String enumType = controlType.get(TYPE_NAME[1], String.class);
|
|
|
kdSubsystemDetail.setControltype(controlType.get(TYPE_NAME[0], String.class))
|
|
|
- .setEnumtype(enumtype);
|
|
|
- if (enumtype==null) {
|
|
|
+ .setEnumtype(enumType);
|
|
|
+ if (enumType==null) {
|
|
|
return kdSubsystemDetail;
|
|
|
}
|
|
|
- if (TYPE_NAME[2].equals(enumtype)) {
|
|
|
+ if (TYPE_NAME[2].equals(enumType)) {
|
|
|
kdSubsystemDetail.setDataorigin(controlType.get(TYPE_NAME[2], String.class));
|
|
|
- } else if (TYPE_NAME[3].equals(enumtype)) {
|
|
|
+ } else if (TYPE_NAME[3].equals(enumType)) {
|
|
|
kdSubsystemDetail.setDataorigin(controlType.get(TYPE_NAME[7], String.class));
|
|
|
- } else if (TYPE_NAME[4].equals(enumtype)) {
|
|
|
+ } else if (TYPE_NAME[4].equals(enumType)) {
|
|
|
kdSubsystemDetail.setDataorigin(controlType.get(TYPE_NAME[8], String.class));
|
|
|
- } else if (TYPE_NAME[5].equals(enumtype)) {
|
|
|
+ } else if (TYPE_NAME[5].equals(enumType)) {
|
|
|
kdSubsystemDetail.setDataorigin(controlType.get(TYPE_NAME[9], String.class));
|
|
|
- } else if (TYPE_NAME[6].equals(enumtype)) {
|
|
|
+ } else if (TYPE_NAME[6].equals(enumType)) {
|
|
|
kdSubsystemDetail.setDataorigin(controlType.get(TYPE_NAME[10], String.class));
|
|
|
}
|
|
|
return kdSubsystemDetail;
|
|
|
- }).filter(Objects::nonNull).collect(Collectors.toList());
|
|
|
- return kdSubsystemDetailList;
|
|
|
+ }).collect(Collectors.toList());
|
|
|
}
|
|
|
|
|
|
|