树表查不到二级目录

场景:树表结构查不到二级模型内容,联动配置如下

树表查不到二级目录

问题:界面只显示部门,不显示岗位。

已知:

  1. 自定义部门代理模型继承了PamirsDepartment

    @Model.model(DepartmentDoc.MODEL_MODEL)
    @Model.Advanced(type = ModelTypeEnum.PROXY)
    @Model(displayName = "部门资料代理模型", summary = "部门资料代理模型")
    public class DepartmentDoc extends PamirsDepartment {
    
       public static final String MODEL_MODEL = "top.DepartmentDoc";
    
       @Field.many2one
       @Field(displayName = "上级部门")
       private DepartmentDoc parent;
    
       @Field.one2many
       @Field(displayName = "岗位列表")
       private List positionLists;
    }
  2. 自定义岗位代理模型继承了PamirsPosition

    @Model.model(PositionDoc.MODEL_MODEL)
    @Model(displayName = "岗位代理模型", summary = "岗位代理模型")
    @Model.Advanced(type = ModelTypeEnum.PROXY)
    public class PositionDoc extends PamirsPosition {
    
       public static final String MODEL_MODEL = "top.PositionDoc";
    
       @Field.many2one
       @Field(displayName = "上级岗位")
       private PositionDoc parent;
    }
  • 首先查看控制台相应请求
    树表查不到二级目录

  • 找到请求接口进后端debug,pro.shushi.pamirs.boot.web.action.UiTreeAction#fetchChildren

树表查不到二级目录

  • 检查这两个数据是否正常

  • 继续debug可知,在queryWrapper中使用departmentCode没有查询出数据,这时候回看模型定义,发现岗位列表中没有定义关联字段,导致没有查出数据。pro.shushi.pamirs.boot.web.manager.tree.UiTreeRelationQueryManager#_fetchIsLeaf
    树表查不到二级目录

  • 解决:在模型配置中添加关系字段@Field.Relation(relationFields = {"code"}, referenceFields = {"departmentCode"}),并和父类中的关系字段保持一致

部门代理模型:

@Model.model(DepartmentDoc.MODEL_MODEL)
@Model.Advanced(type = ModelTypeEnum.PROXY)
@Model(displayName = "部门资料代理模型", summary = "部门资料代理模型")
public class DepartmentDoc extends PamirsDepartment {

    public static final String MODEL_MODEL = "top.DepartmentDoc";

    @Field.many2one
    @Field.Relation(relationFields = {"parentCode"}, referenceFields = {"code"})
    @Field(displayName = "上级部门")
    private DepartmentDoc parent;

    @Field.one2many
    @Field.Relation(relationFields = {"code"}, referenceFields = {"departmentCode"})
    @Field(displayName = "岗位列表")
    private List<PositionDoc> positionLists;
}

岗位代理模型

@Model.model(PositionDoc.MODEL_MODEL)
@Model(displayName = "岗位代理模型", summary = "岗位代理模型")
@Model.Advanced(type = ModelTypeEnum.PROXY)
public class PositionDoc extends PamirsPosition {

    public static final String MODEL_MODEL = "top.PositionDoc";

    @Field.many2one
    @Field.Relation(relationFields = {"departmentCode"}, referenceFields = {"code"})
    @Field(displayName = "上级岗位")
    private PositionDoc parent;
}

Oinone社区 作者:yexiu原创文章,如若转载,请注明出处:https://doc.oinone.top/wen-ti-zhen-duan/14856.html

访问Oinone官网:https://www.oinone.top获取数式Oinone低代码应用平台体验

(0)
yexiu的头像yexiu数式员工
上一篇 2024年7月23日 下午2:57
下一篇 2024年7月23日 下午5:41

相关推荐

  • 调试工具在业务场景的使用-后端

    这篇文档主要介绍在业务场景中,使用调试工具解决后端问题的思路。 调试工具的使用见文档:问题排查调试工具使用手册 调试工具的页面内容介绍:Oinone平台可视化调试工具 例1:模型配置不存在 现象:点击详情报模型配置不存在错误 排查路径: 将报错请求复制到接口调试出,查看调试信息 在调试信息页面,可以看到全部堆栈,利用堆栈信息找报错问题。 可以看到执行了Stu…

    2024年9月26日
    56400
  • Function、Action函数使用规范

    Function的定义需要严格遵循Oinone的规范, @Action是指页面上有按钮展示的方法,所有@Action注解的方法都是需要在权限处设置权限才能访问的。Action背后都对应一个Function。 @Function是Oinone的可管理的执行逻辑,不受权限控制,是无处不在的。 如果只是查询,不需要在页面有按钮,定义为@Function就可以了。 …

    2024年8月20日
    77700
  • O2M、M2O、M2M关系字段配置问题以及问题排查路径

    M2O关系字段 配置示例: @Field(displayName = “教师关联学生”) @Field.many2one @Field.Relation(relationFields = {“studentName”}, referenceFields = {“name”}) private Student students; 解析: 在这个多对一关系中,s…

    2024年8月9日
    60100
  • 保存多值字段SQL执行报错

    定义多值类型时,字段类型应该设置为List类型。 @Field.String @Field(displayName ="经费证明", multi = true, serialize = Field.serialize.JSON) private List<String> matchFund; 场景复现

    2024年8月30日
    47100
  • 序列化工具使用问题

    后端使用的JSON序列化JsonUtils.toJSONString(nodes);前端使用的JSON序列化PamirsJsonUtils.toJSONString(nodes, SerializerFeature.DisableCircularReferenceDetect, SerializerFeature.WriteDateUseDateFormat…

    2024年9月5日
    66000

发表回复

登录后才能评论