From 570daa37c048d609dc6b237ff011591da064e243 Mon Sep 17 00:00:00 2001 From: panshuling321 Date: Thu, 19 May 2022 15:02:37 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=B8=85=E5=88=86=E5=90=8C?= =?UTF-8?q?=E6=AD=A5=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/XhpcHistoryOrderMapper.java | 5 +- .../activity/task/SyncHistoryOrderTask.java | 46 +++++++++++++------ .../mapper/XhpcHistoryOrderMapper.xml | 16 +++++-- 3 files changed, 46 insertions(+), 21 deletions(-) diff --git a/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/mapper/XhpcHistoryOrderMapper.java b/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/mapper/XhpcHistoryOrderMapper.java index 3a74cf03..897958d4 100644 --- a/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/mapper/XhpcHistoryOrderMapper.java +++ b/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/mapper/XhpcHistoryOrderMapper.java @@ -14,10 +14,11 @@ import java.util.Map; */ public interface XhpcHistoryOrderMapper { - List selectUnsyncOrderList(); + List selectUnsyncOrderList(@Param("limit") Integer limit); + int selectUnsyncOrderListCount(); - int updateStatusBatchByOrderIds(@Param("orderIds") List orderIds, @Param("status") Integer status); + int updateStatusBatchByOrderIds(@Param("orderIds") String orderIds, @Param("status") Integer status); BigDecimal selectUnclearingAmount(@Param("operatorId")String operatorId); diff --git a/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/task/SyncHistoryOrderTask.java b/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/task/SyncHistoryOrderTask.java index 887f325f..bf058312 100644 --- a/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/task/SyncHistoryOrderTask.java +++ b/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/task/SyncHistoryOrderTask.java @@ -5,6 +5,7 @@ import com.xhpc.activity.domain.XhpcClearingHistoryOrderDomain; import com.xhpc.activity.domain.XhpcHistoryOrderDomain; import com.xhpc.activity.mapper.XhpcClearingHistoryOrderMapper; import com.xhpc.activity.mapper.XhpcHistoryOrderMapper; +import com.xhpc.common.core.utils.DateUtils; import com.xhpc.common.core.utils.bean.BeanUtils; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; @@ -12,11 +13,11 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.ArrayList; +import java.util.Date; import java.util.List; @Component -@Transactional public class SyncHistoryOrderTask { @@ -31,24 +32,39 @@ public class SyncHistoryOrderTask { * 每天六点自动同步一天之前所有未同步订单 */ @Scheduled(cron = "0 0 6 * * ? ") - private void ExpiredTenantStatusTask(){ + @Transactional + void ExpiredTenantStatusTask(){ + System.out.println(" ============== 自动同步订单到清分 开始 =========================="); - List unclearingDomainList = historyOrderMapper.selectUnsyncOrderList(); + try { + int orderTotal = historyOrderMapper.selectUnsyncOrderListCount(); + int oneTimeCount = 1000; + System.out.println("总共查询到未清分审核订单记录:" + orderTotal); + int count = 0; + while (orderTotal > 0){ + List unClearingDomainList = historyOrderMapper.selectUnsyncOrderList(oneTimeCount); - List clearingHistoryOrderDomainList = new ArrayList<>(); - List orderIds = new ArrayList<>(); - for (XhpcHistoryOrderDomain domain : unclearingDomainList){ - XhpcClearingHistoryOrderDomain clearingDomain = new XhpcClearingHistoryOrderDomain(); + List clearingHistoryOrderDomainList = new ArrayList<>(); + StringBuilder orderIds = new StringBuilder(); + for (XhpcHistoryOrderDomain domain : unClearingDomainList){ + XhpcClearingHistoryOrderDomain clearingDomain = new XhpcClearingHistoryOrderDomain(); - BeanUtils.copyProperties(domain, clearingDomain); - clearingDomain.setClearingOrderId(domain.getHistoryOrderId()); - clearingDomain.setCheckStatus(0); - clearingHistoryOrderDomainList.add(clearingDomain); - orderIds.add(domain.getHistoryOrderId()); + BeanUtils.copyProperties(domain, clearingDomain); + clearingDomain.setClearingOrderId(domain.getHistoryOrderId()); + clearingDomain.setCheckStatus(0); + clearingHistoryOrderDomainList.add(clearingDomain); + orderIds.append(",").append(domain.getHistoryOrderId()); + } + clearingHistoryOrderMapper.insertBatch(clearingHistoryOrderDomainList); + historyOrderMapper.updateStatusBatchByOrderIds(orderIds.toString(), 3); + orderTotal = orderTotal - oneTimeCount; count ++; + System.out.println(" ============== 自动同步订单到清分 第"+count+"次循环结束,"+ DateUtils.parseDateToStr(new Date()) + " =========================="); + } + System.out.println(" ============== 自动同步订单到清分,结束 =========================="); + } catch (Exception e){ + System.out.println(" ============= 同步异常 ============"); + e.printStackTrace(); } - clearingHistoryOrderMapper.insertBatch(clearingHistoryOrderDomainList); - historyOrderMapper.updateStatusBatchByOrderIds(orderIds, 3); - } } diff --git a/xhpc-modules/xhpc-activity/src/main/resources/mapper/XhpcHistoryOrderMapper.xml b/xhpc-modules/xhpc-activity/src/main/resources/mapper/XhpcHistoryOrderMapper.xml index c62cd804..31b12ea1 100644 --- a/xhpc-modules/xhpc-activity/src/main/resources/mapper/XhpcHistoryOrderMapper.xml +++ b/xhpc-modules/xhpc-activity/src/main/resources/mapper/XhpcHistoryOrderMapper.xml @@ -83,6 +83,9 @@ left join xhpc_charging_station as ct on ct.charging_station_id = ho.charging_station_id left join xhpc_operator as op on op.operator_id = ct.operator_id where ho.state ]]> 3 and ho.del_flag=0 + + limit #{limit} + @@ -98,10 +101,7 @@ update xhpc_history_order set state=#{status} - where history_order_id in - - #{item} - + where find_in_set(history_order_id, #{orderIds}) @@ -195,4 +195,12 @@ and ho.create_time #{endTime} + + +