فهرست منبع

公式回溯元素信息

yangyj 2 سال پیش
والد
کامیت
caa98bd7a4

+ 3 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/dto/FormulaBean.java

@@ -4,6 +4,8 @@ import lombok.Data;
 import org.springblade.manager.entity.Formula;
 import org.springframework.beans.BeanUtils;
 
+import java.util.Map;
+
 /**
  * @author yangyj
  * @Date 2022/6/14 16:27
@@ -37,6 +39,7 @@ public class FormulaBean {
     private Long projectId;
     private String dev;
     private Integer ver;
+    private Map<String,Object> dict;
     public Formula toFormula(){
         Formula f= new Formula();
         BeanUtils.copyProperties(this,f);

+ 13 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/FormulaController.java

@@ -169,7 +169,19 @@ public class FormulaController {
             }
             List<Map<String,Object>> listMap = this.jdbcTemplate.queryForList(sb.toString());
             if(Func.isNotEmpty(listMap)){
-                return R.data(BeanUtil.toBean(listMap.get(0),FormulaBean.class));
+                Map<String,Object> map =listMap.get(0);
+                String rely = StringUtils.handleNull(map.get("rely"));
+                FormulaBean fb=BeanUtil.toBean(map,FormulaBean.class);
+                if(StringUtils.isNotEmpty(rely)){
+                    String[] relyArr = rely.split(StringPool.COMMA);
+                   List<Map<String,Object>> mapList =this.jdbcTemplate.queryForList("select CONCAT(a.tab_en_name,':',b.e_key) ekey,a.tab_ch_name tableName,b.e_name ename  ,b.e_length elength,c.dict_value type from m_table_info a JOIN m_wbs_form_element b on a.id=b.f_id  LEFT JOIN (select dict_key, dict_value from blade_dict where code ='data_type' and parent_id > 0 and is_sealed = 0 and is_deleted = 0 )c on b.e_type=c.dict_key" +
+                            " where  a.tab_en_name in( "+ Arrays.stream(relyArr).map(e->e.split(StringPool.COLON)[0]).distinct().collect(Collectors.joining(StringPool.COMMA,"'","'"))+")");
+                   if(ListUtils.isNotEmpty(mapList)){
+                       fb.setDict(mapList.stream().filter(e-> Arrays.stream(relyArr).anyMatch(c->StringUtils.isEquals(e.get("ekey"),c))).collect(Collectors.toMap(e->StringUtils.handleNull(e.get("ekey")), e->e)));
+                   }
+
+                }
+                return R.data(fb);
             }
 
         }