重新覆盖七天的数据

odoo切换查询方式
YXY 1 year ago
parent 58fdd270d0
commit c2666450d6

@ -173,6 +173,16 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
}
}
public static Date str2Date(String time, String pattern){
try {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
return simpleDateFormat.parse(time);
}catch (Exception e){
}
return new Date();
}
public static LocalDateTime long2ldt(long time) {
return LocalDateTime.ofInstant(Instant.ofEpochSecond(time), ZoneOffset.ofHours(8));
}

@ -58,7 +58,7 @@
<select id="queryWaitDeleteRecordList" resultType="java.lang.String">
SELECT lark_key
FROM erp_lark_relation
WHERE DATE (create_time) = #{currentDay}
WHERE DATE (create_time) >= #{currentDay}
and remark = #{remark}
and `method` = #{method}
</select>

@ -80,7 +80,8 @@ public class ManufactureOrderSyncJob extends SyncAccountsJobAbstract {
"ManufactureOrder.ManufactureOrderDetails.pubuserdefnvc2",
"ManufactureOrder.ManufactureOrderDetails.Customer.Name",
"ManufactureOrder.ManufactureOrderDetails.priuserdefnvc1",
"ManufactureOrder.ManufactureOrderDetails.pubuserdefnvc1");
"ManufactureOrder.ManufactureOrderDetails.pubuserdefnvc1",
"ManufactureOrder.AuditedTime");
}
@Override

@ -76,7 +76,8 @@ public class PurchaseArrivalOpenSyncJob extends SyncAccountsJobAbstract{
"PurchaseArrival.VoucherState.Name",
"PurchaseArrival.Details.Warehouse.Name",
// "",//todo yxy 货位
"PurchaseArrival.Details.DetailMemo");
"PurchaseArrival.Details.DetailMemo",
"PurchaseArrival.AuditedTime");
}
@Override

@ -63,7 +63,8 @@ public class PurchaseOrderSyncJob extends SyncAccountsJobAbstract{
"PurchaseOrder.PurchaseOrderDetails.Unit.Name",
"PurchaseOrder.PurchaseOrderDetails.AcceptDate",
"PurchaseOrder.PurchaseOrderDetails.SaleOrderCode",
"PurchaseOrder.PurchaseOrderDetails.DetailMemo");
"PurchaseOrder.PurchaseOrderDetails.DetailMemo",
"PurchaseOrder.AuditedTime");
}
@Override

@ -73,7 +73,7 @@ public class SaleDeliverySyncJob extends SyncAccountsJobAbstract {
"SaleDelivery.Customer.Name",
"SaleDelivery.BusinessType.Name",
"SaleDelivery.CreatedTime",
"SaleDelivery.auditeddate",
"SaleDelivery.Auditeddate",
"SaleDelivery.VoucherDate",
"SaleDelivery.SaleDeliveryDetails.SaleOrderCode",
"SaleDelivery.SaleDeliveryDetails.Inventory.Code",
@ -85,7 +85,8 @@ public class SaleDeliverySyncJob extends SyncAccountsJobAbstract {
"SaleDelivery.SaleDeliveryDetails.OrigDiscountAmount",
"SaleDelivery.Memo",
"SaleDelivery.SaleDeliveryDetails.DetailMemo",
"SaleDelivery.SaleDeliveryDetails.Warehouse.Name");
"SaleDelivery.SaleDeliveryDetails.Warehouse.Name",
"SaleDelivery.AuditedTime");
}
@Override

@ -84,7 +84,8 @@ public class SaleOrderSyncJob extends SyncAccountsJobAbstract{
"SaleOrder.memo",
"SaleOrder.SaleOrderDetails.pubuserdefnvc2",
"SaleOrder.SaleOrderDetails.origDiscountAmount",
"SaleOrder.CustomerMemo");
"SaleOrder.CustomerMemo",
"SaleOrder.AuditedTime");
}
@Override

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

Loading…
Cancel
Save