odoo切换批量更新

odoo切换查询方式
YXY 1 year ago
parent 7ef48fc857
commit dcecb5329f

@ -275,6 +275,31 @@ public class LarkTableHelper extends LarkHelper{
} }
} }
public BatchUpdateAppTableRecordRespBody updateTableRecordBatch(LarkTableRequest request) {
BatchUpdateAppTableRecordResp update = null;
try {
update = buildClient(request).bitable().appTableRecord()
.batchUpdate(
BatchUpdateAppTableRecordReq.newBuilder()
.appToken(request.getAppToken())
.tableId(request.getAppTable())
.batchUpdateAppTableRecordReqBody(
BatchUpdateAppTableRecordReqBody.newBuilder()
.records(request.getAppTableRecords())
.build()
)
.build()
);
} catch (Exception e) {
throw new RuntimeException(new LarkException("LarkTableHelper.updateTableRecordBatch",e.getMessage(),request).getErrorMessageBody());
}
if (update != null && update.getCode() == 0){
return update.getData();
}else {
throw new RuntimeException(new LarkException("LarkTableHelper.updateTableRecordBatch",update.getMsg(),request).getErrorMessageBody());
}
}
public ListAppTableRecordRespBody listTableRecord(LarkTableRequest request) { public ListAppTableRecordRespBody listTableRecord(LarkTableRequest request) {
ListAppTableRecordResp list = null; ListAppTableRecordResp list = null;
try { try {

@ -2,6 +2,7 @@ package com.ruoyi.quartz.task.odoo;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.lark.oapi.service.bitable.v1.model.AppTableRecord;
import com.lark.oapi.service.bitable.v1.model.CreateAppTableRecordRespBody; import com.lark.oapi.service.bitable.v1.model.CreateAppTableRecordRespBody;
import com.ruoyi.common.enums.AppType; import com.ruoyi.common.enums.AppType;
import com.ruoyi.common.enums.FlagStatus; import com.ruoyi.common.enums.FlagStatus;
@ -121,16 +122,28 @@ public abstract class OdooAbstrackob {
List<Integer> retryPageList = new ArrayList<>(); List<Integer> retryPageList = new ArrayList<>();
List<ErpLarkRelation> waitCreateRelation = new ArrayList<>(); List<ErpLarkRelation> waitCreateRelation = new ArrayList<>();
do { do {
dateList = getDate(context, pageMap, context.getWarehouseId(), retryPageList); try {
List<AppTableRecord> updateRecords = new ArrayList<>();
if (CollectionUtils.isNotEmpty(dateList)) { dateList = getDate(context, pageMap, context.getWarehouseId(), retryPageList);
Map<String, String> relationMap = getLarkRelation(dateList, context.getWarehouseId()); if (CollectionUtils.isNotEmpty(dateList)) {
for (JSONObject jsonObject : dateList) { Map<String, String> relationMap = getLarkRelation(dateList, context.getWarehouseId());
sync(jsonObject, errorList, relationMap, larkRequest, waitCreateRelation, context.getWarehouseId()); for (JSONObject jsonObject : dateList) {
sync(jsonObject, errorList, relationMap, larkRequest, waitCreateRelation, context.getWarehouseId(),updateRecords);
}
}
if (CollectionUtils.isNotEmpty(updateRecords)) {
larkRequest.setAppTableRecords(updateRecords.toArray(new AppTableRecord[0]));
larkTableHelper.updateTableRecordBatch(larkRequest);
}
if (CollectionUtils.isNotEmpty(waitCreateRelation)) {
erpLarkRelationMapper.batchInsert(waitCreateRelation);
}
}catch (Exception e){
log.error("{} 获取数据失败", this.getClassName(), e);
Integer integer = pageMap.get(PAGE_OFFSET_KEY);
if (!retryPageList.contains(integer)) {
retryPageList.add(integer);
} }
}
if (CollectionUtils.isNotEmpty(waitCreateRelation)) {
erpLarkRelationMapper.batchInsert(waitCreateRelation);
} }
pageMap.put(PAGE_OFFSET_KEY, pageMap.get(PAGE_OFFSET_KEY) + PAGE_SIZE); pageMap.put(PAGE_OFFSET_KEY, pageMap.get(PAGE_OFFSET_KEY) + PAGE_SIZE);
} while (dateList == null || (CollectionUtils.isNotEmpty(dateList) && dateList.size() == PAGE_SIZE)); } while (dateList == null || (CollectionUtils.isNotEmpty(dateList) && dateList.size() == PAGE_SIZE));
@ -142,7 +155,8 @@ public abstract class OdooAbstrackob {
private void sync(JSONObject jsonObject, List<String> errorList private void sync(JSONObject jsonObject, List<String> errorList
, Map<String, String> relationMap, LarkTableRequest larkRequest , Map<String, String> relationMap, LarkTableRequest larkRequest
, List<ErpLarkRelation> waitCreateRelation, Integer warehouseId) { , List<ErpLarkRelation> waitCreateRelation, Integer warehouseId
, List<AppTableRecord> updateRecords) {
String uniqueKey = null; String uniqueKey = null;
try { try {
Map<String, Object> larkBodyMap = this.buildLarkBodyMap(jsonObject); Map<String, Object> larkBodyMap = this.buildLarkBodyMap(jsonObject);
@ -152,8 +166,10 @@ public abstract class OdooAbstrackob {
TableRelationTypeEnum tableRelationTypeEnum = this.syncLarkType(warehouseId); TableRelationTypeEnum tableRelationTypeEnum = this.syncLarkType(warehouseId);
if (StringUtils.isNotBlank(larkRecord)) { if (StringUtils.isNotBlank(larkRecord)) {
if (!tableRelationTypeEnum.equals(TableRelationTypeEnum.SYNC_ODOO_ACCOUNT_MOVE_LINE)) { if (!tableRelationTypeEnum.equals(TableRelationTypeEnum.SYNC_ODOO_ACCOUNT_MOVE_LINE)) {
larkRequest.setRecord(larkRecord); AppTableRecord appTableRecord = new AppTableRecord();
larkTableHelper.updateTableRecord(larkRequest); appTableRecord.setFields(larkBodyMap);
appTableRecord.setRecordId(larkRecord);
updateRecords.add(appTableRecord);
} }
} else { } else {
CreateAppTableRecordRespBody respBody = larkTableHelper.addTableRecord(larkRequest); CreateAppTableRecordRespBody respBody = larkTableHelper.addTableRecord(larkRequest);

Loading…
Cancel
Save