|
|
@ -84,8 +84,8 @@ public abstract class SyncAccountsJobAbstract {
|
|
|
|
|
|
|
|
|
|
|
|
private Boolean asynchronousCheck(LocalDateTime now, String cjt) {
|
|
|
|
private Boolean asynchronousCheck(LocalDateTime now, String cjt) {
|
|
|
|
int hour = now.getHour();
|
|
|
|
int hour = now.getHour();
|
|
|
|
if ((hour == 0 && CjtAccountEnum.ONE.getCode().equals(cjt))
|
|
|
|
if ((hour == 1 && CjtAccountEnum.ONE.getCode().equals(cjt))
|
|
|
|
|| (hour == 1 && CjtAccountEnum.TWO.getCode().equals(cjt))) {
|
|
|
|
|| (hour == 3 && CjtAccountEnum.TWO.getCode().equals(cjt))) {
|
|
|
|
//目前只给畅捷通账号二加工单开补偿
|
|
|
|
//目前只给畅捷通账号二加工单开补偿
|
|
|
|
// if ((AppType.SYNC_CJT_MANUFACTURE_ORDER_DATA_TO_MULTI_TABLE.getCode().equals(syncLarkAppType().getCode())
|
|
|
|
// if ((AppType.SYNC_CJT_MANUFACTURE_ORDER_DATA_TO_MULTI_TABLE.getCode().equals(syncLarkAppType().getCode())
|
|
|
|
// && CjtAccountEnum.TWO.getCode().equals(cjt)) || (AppType.SYNC_CJT_SALE_DISPATCH_DATA_TO_MULTI_TABLE.getCode().equals(syncLarkAppType().getCode())
|
|
|
|
// && CjtAccountEnum.TWO.getCode().equals(cjt)) || (AppType.SYNC_CJT_SALE_DISPATCH_DATA_TO_MULTI_TABLE.getCode().equals(syncLarkAppType().getCode())
|
|
|
@ -114,7 +114,7 @@ public abstract class SyncAccountsJobAbstract {
|
|
|
|
context.setAsynchronous(asynchronous);
|
|
|
|
context.setAsynchronous(asynchronous);
|
|
|
|
if (StringUtils.isEmpty(queryFromTime)) {
|
|
|
|
if (StringUtils.isEmpty(queryFromTime)) {
|
|
|
|
queryFromTime = asynchronous
|
|
|
|
queryFromTime = asynchronous
|
|
|
|
? DateUtils.startOfDate(LocalDate.now().minusDays(8L))
|
|
|
|
? DateUtils.startOfDate(LocalDate.now().minusDays(7L))
|
|
|
|
: DateUtils.ldt2str(now.minusMinutes(REDUCE_MINUTES), DateUtils.YYYY_MM_DD_HH_MM_SS);
|
|
|
|
: DateUtils.ldt2str(now.minusMinutes(REDUCE_MINUTES), DateUtils.YYYY_MM_DD_HH_MM_SS);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
context.setQueryFromTime(queryFromTime);
|
|
|
|
context.setQueryFromTime(queryFromTime);
|
|
|
@ -170,12 +170,9 @@ public abstract class SyncAccountsJobAbstract {
|
|
|
|
log.info("===================== {} strat ======================", this.getClassName());
|
|
|
|
log.info("===================== {} strat ======================", this.getClassName());
|
|
|
|
//初始化飞书信息及相关配置
|
|
|
|
//初始化飞书信息及相关配置
|
|
|
|
initLarkInfo(context);
|
|
|
|
initLarkInfo(context);
|
|
|
|
// if (Boolean.TRUE.equals(context.getAsynchronous())) {
|
|
|
|
if (Boolean.TRUE.equals(context.getAsynchronous())) {
|
|
|
|
// Boolean deleteSuccess = handleRepeatData(now, cjt, context);
|
|
|
|
Boolean deleteSuccess = handleRepeatData(now, cjt, context);
|
|
|
|
// if (!deleteSuccess){
|
|
|
|
}
|
|
|
|
// return;
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
//重置ticket
|
|
|
|
//重置ticket
|
|
|
|
resetTicket(context);
|
|
|
|
resetTicket(context);
|
|
|
|
//执行分页同步
|
|
|
|
//执行分页同步
|
|
|
@ -203,7 +200,7 @@ public abstract class SyncAccountsJobAbstract {
|
|
|
|
LarkCompanyRelation companyRelation = context.getCompanyRelation();
|
|
|
|
LarkCompanyRelation companyRelation = context.getCompanyRelation();
|
|
|
|
LarkTableRelation tableRelation = context.getTableRelation();
|
|
|
|
LarkTableRelation tableRelation = context.getTableRelation();
|
|
|
|
LarkTableRequest request = new LarkTableRequest(companyRelation.getAppId(), companyRelation.getSecret(), tableRelation.getToAppToken(), tableRelation.getToTableId());
|
|
|
|
LarkTableRequest request = new LarkTableRequest(companyRelation.getAppId(), companyRelation.getSecret(), tableRelation.getToAppToken(), tableRelation.getToTableId());
|
|
|
|
String date = DateUtils.ldt2str(now.minusDays(1L), DateUtils.YYYY_MM_DD);
|
|
|
|
String date = DateUtils.ldt2str(now.minusDays(7L), DateUtils.YYYY_MM_DD);
|
|
|
|
List<String> recordList = erpLarkRelationMapper.queryWaitDeleteRecordList(date, getRequestUrl(), cjt);
|
|
|
|
List<String> recordList = erpLarkRelationMapper.queryWaitDeleteRecordList(date, getRequestUrl(), cjt);
|
|
|
|
List<String> waitDeleteList = new ArrayList<>();
|
|
|
|
List<String> waitDeleteList = new ArrayList<>();
|
|
|
|
for (String record : recordList) {
|
|
|
|
for (String record : recordList) {
|
|
|
@ -443,21 +440,30 @@ public abstract class SyncAccountsJobAbstract {
|
|
|
|
//判断当前查询条件内是否存在重复数据
|
|
|
|
//判断当前查询条件内是否存在重复数据
|
|
|
|
Map<String, Integer> repeatMap = new HashMap<>();
|
|
|
|
Map<String, Integer> repeatMap = new HashMap<>();
|
|
|
|
List<AppTableRecord> waitUpdateList = new ArrayList<>();
|
|
|
|
List<AppTableRecord> waitUpdateList = new ArrayList<>();
|
|
|
|
|
|
|
|
String createTimeKey = "auditedTime";
|
|
|
|
|
|
|
|
if (AppType.SYNC_CJT_SALE_DISPATCH_DATA_TO_MULTI_TABLE.equals(syncLarkAppType())) {
|
|
|
|
|
|
|
|
createTimeKey = "createdtime";
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
String createTime = null;
|
|
|
|
for (List<String> row : rows) {
|
|
|
|
for (List<String> row : rows) {
|
|
|
|
String uniqueKey = null;
|
|
|
|
String uniqueKey = null;
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
Map<String, Object> body = new HashMap<>();
|
|
|
|
Map<String, Object> body = new HashMap<>();
|
|
|
|
List<String> uniqueKeyList = new ArrayList<>();
|
|
|
|
List<String> uniqueKeyList = new ArrayList<>();
|
|
|
|
for (int i = 0; i < row.size(); i++) {
|
|
|
|
for (int i = 0; i < row.size(); i++) {
|
|
|
|
CJTSyncTypeRelation cjtSyncTypeRelation = queryFieldsMap.get(keyList.get(i));
|
|
|
|
String rowKey = keyList.get(i);
|
|
|
|
|
|
|
|
CJTSyncTypeRelation cjtSyncTypeRelation = queryFieldsMap.get(rowKey);
|
|
|
|
if (cjtSyncTypeRelation == null) {
|
|
|
|
if (cjtSyncTypeRelation == null) {
|
|
|
|
continue;
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
String larkLabel = cjtSyncTypeRelation.getLarkFileName();
|
|
|
|
String larkLabel = cjtSyncTypeRelation.getLarkFileName();
|
|
|
|
String value = row.get(i);
|
|
|
|
String value = row.get(i);
|
|
|
|
if (uniqueFields.contains(keyList.get(i))) {
|
|
|
|
if (uniqueFields.contains(rowKey)) {
|
|
|
|
uniqueKeyList.add(value);
|
|
|
|
uniqueKeyList.add(value);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if (createTimeKey.equals(rowKey.toLowerCase())){
|
|
|
|
|
|
|
|
createTime = value;
|
|
|
|
|
|
|
|
}
|
|
|
|
body.put(larkLabel, this.changeValueType(value, cjtSyncTypeRelation));
|
|
|
|
body.put(larkLabel, this.changeValueType(value, cjtSyncTypeRelation));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
uniqueKey = String.join("_", uniqueKeyList).toUpperCase() + "_" + addRecordRequest.getAppTable();
|
|
|
|
uniqueKey = String.join("_", uniqueKeyList).toUpperCase() + "_" + addRecordRequest.getAppTable();
|
|
|
@ -471,7 +477,7 @@ public abstract class SyncAccountsJobAbstract {
|
|
|
|
//在飞书创建一行,并根据创建返回的行id在本地保留一条映射纪律
|
|
|
|
//在飞书创建一行,并根据创建返回的行id在本地保留一条映射纪律
|
|
|
|
CreateAppTableRecordRespBody respBody = larkTableHelper.addTableRecord(addRecordRequest);
|
|
|
|
CreateAppTableRecordRespBody respBody = larkTableHelper.addTableRecord(addRecordRequest);
|
|
|
|
larkKey = respBody.getRecord().getRecordId();
|
|
|
|
larkKey = respBody.getRecord().getRecordId();
|
|
|
|
relationList.add(buildErpLarkRelation(uniqueKey, larkKey, cjt, asynchronous));
|
|
|
|
relationList.add(buildErpLarkRelation(uniqueKey, larkKey, cjt, asynchronous,createTime));
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
if (!AppType.SYNC_CJT_SALE_DISPATCH_DATA_TO_MULTI_TABLE.equals(syncLarkAppType())) {
|
|
|
|
if (!AppType.SYNC_CJT_SALE_DISPATCH_DATA_TO_MULTI_TABLE.equals(syncLarkAppType())) {
|
|
|
|
//根据本地保留映射,确认飞书的更新行,更新后防止影响后续更新,需要将行id进行置空
|
|
|
|
//根据本地保留映射,确认飞书的更新行,更新后防止影响后续更新,需要将行id进行置空
|
|
|
@ -506,7 +512,7 @@ public abstract class SyncAccountsJobAbstract {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//构建飞书行与cjt唯一键的对应关系对象
|
|
|
|
//构建飞书行与cjt唯一键的对应关系对象
|
|
|
|
private ErpLarkRelation buildErpLarkRelation(String key, String larkKey, String cjt, Boolean asynchronous) {
|
|
|
|
private ErpLarkRelation buildErpLarkRelation(String key, String larkKey, String cjt, Boolean asynchronous,String createTime) {
|
|
|
|
ErpLarkRelation erpLarkRelation = new ErpLarkRelation();
|
|
|
|
ErpLarkRelation erpLarkRelation = new ErpLarkRelation();
|
|
|
|
erpLarkRelation.setKey(key);
|
|
|
|
erpLarkRelation.setKey(key);
|
|
|
|
erpLarkRelation.setLarkKey(larkKey);
|
|
|
|
erpLarkRelation.setLarkKey(larkKey);
|
|
|
@ -514,12 +520,7 @@ public abstract class SyncAccountsJobAbstract {
|
|
|
|
erpLarkRelation.setFlag(FlagStatus.OK.getCode());
|
|
|
|
erpLarkRelation.setFlag(FlagStatus.OK.getCode());
|
|
|
|
erpLarkRelation.setRemark(cjt);
|
|
|
|
erpLarkRelation.setRemark(cjt);
|
|
|
|
erpLarkRelation.setCreateBy("SYSTEM");
|
|
|
|
erpLarkRelation.setCreateBy("SYSTEM");
|
|
|
|
Date date = new Date();
|
|
|
|
erpLarkRelation.setCreateTime(DateUtils.str2Date(createTime,DateUtils.YYYY_MM_DD_HH_MM_SS));
|
|
|
|
if (Boolean.TRUE.equals(asynchronous)) {
|
|
|
|
|
|
|
|
LocalDateTime localDateTime = LocalDateTime.now().minusDays(1L);
|
|
|
|
|
|
|
|
date = Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
erpLarkRelation.setCreateTime(date);
|
|
|
|
|
|
|
|
return erpLarkRelation;
|
|
|
|
return erpLarkRelation;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|