wangxiaoming 5 лет назад
Родитель
Сommit
8b8f163a25

+ 6 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/SalesOrderMapper.java

@@ -30,6 +30,12 @@ public interface SalesOrderMapper {
      * @return
      */
     SalesOrder getSalesOrderByIdConcise(Integer salesId);
+    /**
+     * 根据订单号查询订单信息 - 简洁
+     * @param salesDealCode
+     * @return
+     */
+    SalesOrder getSalesOrderByIdConciseByDealCode(String salesDealCode);
 
     /**
      * 根据订单id查询订单项信息

+ 8 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/mapper/salesOrderMapper.xml

@@ -70,6 +70,14 @@
     where t.sales_id = #{salesId}
   </select>
 
+    <!-- 根据id查询订单信息 -->
+  <select id="getSalesOrderByIdConciseByDealCode" resultType="SalesOrder" parameterType="String" >
+    select
+        t.*
+    from tb_rst_sales_order_info t
+    where t.sales_deal_code = #{salesDealCode}
+  </select>
+
   <!-- 根据id查询订单信息 -->
   <select id="getOrderItemListBySalesId" resultType="SalesOrderItem" parameterType="java.lang.Integer" >
     SELECT

+ 27 - 8
watero-rst-service/src/main/java/com/iamberry/rst/service/order/OrderSyncLogServiceImpl.java

@@ -193,14 +193,28 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
         orderSyncLogMapper.save(orderSyncLog);
 
         if(type == 1){
-            //刷新定会任务最新获取时间
-            orderSyncPlatform.setSyncOrderLastTime(endCreateTime);
-            OrderSyncPlatform newOrderSyncPlatform = new OrderSyncPlatform();
-            newOrderSyncPlatform.setSyncOrderLastTime(endCreateTime);
-            newOrderSyncPlatform.setSyncPlatId(orderSyncPlatform.getSyncPlatId());
-            orderSyncPlatformMapper.update(newOrderSyncPlatform);
+            //刷新定会任务最新获取时间-小亚通订单生成之后还需要审核操作,所以中间会存在时间差导致订单拉取不过来,
+            // 因此时间不会及时刷新,考虑到系统等问题,因为时间调整每晚12点刷新拉取时间
+            Calendar endCreateTimeCalendar = Calendar.getInstance();
+            endCreateTimeCalendar.setTime(orderSyncPlatform.getSyncOrderLastTime());
+            Calendar newDateCalendar = Calendar.getInstance();
+            if(endCreateTimeCalendar.get(Calendar.DAY_OF_MONTH) != newDateCalendar.get(Calendar.DAY_OF_MONTH)){
+                logger.info("-------------------endCreateTimeCalendar 为:"+endCreateTimeCalendar.get(Calendar.DAY_OF_MONTH));
+                logger.info("-------------------newDateCalendar 为:"+newDateCalendar.get(Calendar.DAY_OF_MONTH));
+                newDateCalendar.set(Calendar.HOUR_OF_DAY,0);
+                newDateCalendar.set(Calendar.MINUTE,0);
+                newDateCalendar.set(Calendar.SECOND,0);
+                endCreateTime = newDateCalendar.getTime();
+                logger.info("-------------------endCreateTime 时间 为:"+sdf.format(endCreateTime));
+                orderSyncPlatform.setSyncOrderLastTime(endCreateTime);
+
+                OrderSyncPlatform newOrderSyncPlatform = new OrderSyncPlatform();
+                newOrderSyncPlatform.setSyncOrderLastTime(endCreateTime);
+                newOrderSyncPlatform.setSyncPlatId(orderSyncPlatform.getSyncPlatId());
+                orderSyncPlatformMapper.update(newOrderSyncPlatform);
+            }
         }
-        return 1;
+        return amountSuccessAllNum;
     }
 
     /**
@@ -832,7 +846,12 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
                         // 先判断交易号是否重复,避免生成太多空批次
                         Integer flag = salesOrderMapper.getOrderBySalesDealCodeNum(salesOrder.getSalesDealCode());
                         if(flag > 0){
-                            throw new RuntimeException("交易号("+ salesOrder.getSalesDealCode() +")重复,请重新生成交易号!");
+                            SalesOrder so = salesOrderMapper.getSalesOrderByIdConciseByDealCode(salesOrder.getSalesDealCode());
+                            if(!generateKeyUtil.isXytBatchId(so.getSalesBatchId())){
+                                throw new RuntimeException("交易号("+ salesOrder.getSalesDealCode() +")重复,请重新生成交易号!");
+                            }
+                            amountNum--;    //减去查询出来的数量
+                            continue;
                         }
 
                         // 用户新建批次,系统自动新建

+ 2 - 4
watero-rst-service/src/main/java/com/iamberry/rst/service/order/mapper/orderSyncLogMapper.xml

@@ -68,8 +68,7 @@
             sync_log_recent_num,
             sync_log_error_num,
             sync_log_msg,
-            sync_log_error_msg,
-            sync_log_create_date
+            sync_log_error_msg
         )
       values
         (
@@ -80,8 +79,7 @@
             #{syncLogRecentNum},
             #{syncLogErrorNum},
             #{syncLogMsg},
-            #{syncLogErrorMsg},
-            #{syncLogCreateDate}
+            #{syncLogErrorMsg}
         )
     </insert>
 </mapper>

+ 4 - 4
watero-rst-web/src/main/java/com/iamberry/rst/controllers/mq/MQTask.java

@@ -627,12 +627,12 @@ public class MQTask implements InitializingBean {
 	/**
 	 * 定时拉取小亚通订单
 	 */
-	/*@Scheduled(cron = "0 0/3 * * * ?")//每三分钟执行一次*/
-	@Scheduled(cron = "0 0/30 * * * ?")//每半个小时执行一次
+	@Scheduled(cron = "0 0/3 * * * ?")//每三分钟执行一次
+//	@Scheduled(cron = "0 0/30 * * * ?")//每半个小时执行一次
 	public void syncXytOrder(){
 		logger.info("-----定时拉取小亚通订单-开始----");
-		orderSyncLogService.syncXYTOrder(1,null);
-		logger.info("-----定时拉取小亚通订单-结束----");
+		Integer num = orderSyncLogService.syncXYTOrder(1,null);
+		logger.info("-----定时拉取小亚通订单,拉取订单数量:"+ num +"-结束----");
 	}
 
 }