diff --git a/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/domain/RequestVo.java b/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/domain/RequestVo.java index 13fb8e9..fe0de4a 100644 --- a/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/domain/RequestVo.java +++ b/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/domain/RequestVo.java @@ -59,6 +59,8 @@ public class RequestVo { private EventOperateType eventOperateType; private String operateInfo; private TableRelationTypeEnum tableRelationType; + //是否由主表发起的同步 + private Boolean mainTableSync; /** * 表关系 */ diff --git a/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/strategy/operate/MultidimensionalTableDoubleOperate.java b/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/strategy/operate/MultidimensionalTableDoubleOperate.java index 962a1a8..071f02e 100644 --- a/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/strategy/operate/MultidimensionalTableDoubleOperate.java +++ b/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/strategy/operate/MultidimensionalTableDoubleOperate.java @@ -41,11 +41,14 @@ public class MultidimensionalTableDoubleOperate extends MultidimensionalTableOpe //主表与副表的列对应关系 List tableRelationIdList = new ArrayList<>(); Map tableRelationMap = new HashMap<>(); + Boolean mainTableSync = Boolean.TRUE; for (LarkTableRelation larkTableRelation : request.getLarkTableRelations()) { + mainTableSync = larkTableRelation.getFromTableId().equals(request.getEvent().getTableId()); String to = String.format("%s_%s", larkTableRelation.getFromAppToken(), larkTableRelation.getFromTableId()); tableRelationMap.put(to, larkTableRelation.getId()); tableRelationIdList.add(larkTableRelation.getId()); } + request.setMainTableSync(mainTableSync); request.setTableRelationMap(tableRelationMap); //主表与副表的行对应关系 List larkTableRowRelations = iLarkTableRowRelationService.queryListByTableRelationIdList(tableRelationIdList); diff --git a/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/strategy/operate/MultidimensionalTableOperate.java b/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/strategy/operate/MultidimensionalTableOperate.java index fbbace6..56b8578 100644 --- a/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/strategy/operate/MultidimensionalTableOperate.java +++ b/ruoyi-flyingbook/src/main/java/com/ruoyi/flyingbook/strategy/operate/MultidimensionalTableOperate.java @@ -183,7 +183,9 @@ public class MultidimensionalTableOperate extends LarkAbstract { CreateAppTableRecordRespBody addResp = larkTokenHelper.addTableRecord(add); if (addResp != null) { String recordId = addResp.getRecord().getRecordId(); - LarkTableRowRelation rowRelation = new LarkTableRowRelation(request.getTableRelationId(), event.getRecordId(), recordId, TableDetailRelationTypeEnum.ROW.getCode(), TableDetailRelationTypeEnum.ROW.getCode()); + LarkTableRowRelation rowRelation = Boolean.FALSE.equals(request.getMainTableSync()) + ? new LarkTableRowRelation(request.getTableRelationId(), recordId,event.getRecordId(), TableDetailRelationTypeEnum.ROW.getCode(), TableDetailRelationTypeEnum.ROW.getCode()) + : new LarkTableRowRelation(request.getTableRelationId(), event.getRecordId(), recordId, TableDetailRelationTypeEnum.ROW.getCode(), TableDetailRelationTypeEnum.ROW.getCode()); iLarkTableRowRelationService.insertLarkTableRowRelation(rowRelation); } request.setEventOperateType(EventOperateType.CREATE);