Kaynağa Gözat

添加更新订单的签单时间同时更新结算表签单时间添加日志方便排查问题

hxl13994548489 1 yıl önce
ebeveyn
işleme
0fa61efdfb

+ 12 - 4
src/main/java/com/ydtech/modules/order/service/impl/InsOrderPayDateRecordServiceImpl.java

@@ -14,6 +14,7 @@ import com.ydtech.modules.order.entity.dto.ReadPdfUrlListDto;
 import com.ydtech.modules.order.entity.po.InsOrderPayDateRecord;
 import com.ydtech.modules.order.entity.po.InsOrderReadPdf;
 import com.ydtech.modules.order.service.*;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -32,6 +33,7 @@ import java.util.stream.Collectors;
  * @description 针对表【ins_order_pay_date_record(自动更新签单时间记录表)】的数据库操作Service实现
  * @createDate 2024-10-15 18:58:00
  */
+@Slf4j
 @Service
 public class InsOrderPayDateRecordServiceImpl extends ServiceImpl<InsOrderPayDateRecordMapper, InsOrderPayDateRecord>
         implements InsOrderPayDateRecordService {
@@ -143,14 +145,19 @@ public class InsOrderPayDateRecordServiceImpl extends ServiceImpl<InsOrderPayDat
             }
             //更新时间表
              insAreaCompanyService.updateById(subOrder);
+             log.info("更新的订单表为"+subOrder.toString()+new Date().toString());
             //判斷又沒有結算表如果有更新  add  by hxl  2024-12-30
             if(subOrder.getSigningTime()!=null){
                 LambdaQueryWrapper<InsPlyIncome> lqw = new LambdaQueryWrapper<>();
                 lqw.eq(InsPlyIncome::getOrderno, subOrder.getId());
-                InsPlyIncome insPlyIncome = insPlyIncomeService.getOne(lqw);
-                if(insPlyIncome!=null){
-                    insPlyIncome.setSignDate(subOrder.getSigningTime());
-                    insPlyIncomeService.updateById(insPlyIncome);
+                List<InsPlyIncome> insPlyIncome = insPlyIncomeService.list(lqw);
+
+                if(insPlyIncome!=null && insPlyIncome.size()>0){
+                    for (InsPlyIncome plyIncome : insPlyIncome) {
+                        plyIncome.setSignDate(subOrder.getSigningTime());
+                        insPlyIncomeService.updateById(plyIncome);
+                        log.info("更新的结算表为"+plyIncome.toString()+new Date().toString());
+                    }
                 }
             }
 
@@ -223,6 +230,7 @@ public class InsOrderPayDateRecordServiceImpl extends ServiceImpl<InsOrderPayDat
                 }
             }
             insPlyIncomeService.saveOrUpdateBatch(newList);
+            log.info("更新的结算表为"+newList.toString()+new Date().toString());
         }
     }
 }

+ 44 - 7
src/main/java/com/ydtech/modules/order/timer/UpdateOrderTimer.java

@@ -1,5 +1,6 @@
 package com.ydtech.modules.order.timer;
 
+import com.ydtech.modules.admin.utils.SliceUpDateUtil;
 import com.ydtech.modules.order.service.InsOrderPayDateRecordService;
 import com.ydtech.utils.DateUtil;
 import lombok.extern.slf4j.Slf4j;
@@ -33,7 +34,9 @@ public class UpdateOrderTimer {
      */
     @Scheduled(cron = "0 0/10 * * * ?")
     private void updateOrderDateMinite() {
-        updateOrderDate();
+        String benginDate = DateUtil.getDateFormat(new Date(), "yyyy-MM-dd")+" 00:00:00";
+        String endDate = DateUtil.getDateFormat(new Date(), "yyyy-MM-dd")+" 23:59:59";
+        updateOrderDate(benginDate,endDate);
     }
     /**
      *  @version
@@ -45,20 +48,25 @@ public class UpdateOrderTimer {
      */
     @Scheduled(cron = "0 0 13 * * ?")
     private void updateOrderDateNoon() {
-        updateOrderDate();
+        //更新前一周的数据
+        String benginDate = SliceUpDateUtil.getBeforeDay(new Date(), 1) + " 00:00:00";
+        String endDate = SliceUpDateUtil.getBeforeDay(new Date(), 0) + " 23:59:59";
+        updateOrderDate(benginDate,endDate);
     }
 
 
     @Scheduled(cron = "0 0 1 * * ?")
     private void updateOrderDateBeforeDawn() {
-        updateOrderDate();
+        String benginDate = SliceUpDateUtil.getBeforeDay(new Date(), 1) + " 00:00:00";
+        String endDate = SliceUpDateUtil.getBeforeDay(new Date(), 0) + " 23:59:59";
+        updateOrderDate(benginDate,endDate);
     }
 
-    private void updateOrderDate() {
+    private void updateOrderDate(String benginDate,String endDate) {
         log.info("定时更新订单的签单时间和缴费日期,启动时间:{}", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
         //中午1点到凌晨1点
-        String benginDate = DateUtil.getDateFormat(new Date(), "yyyy-MM-dd")+" 00:00:00";
-        String endDate = DateUtil.getDateFormat(new Date(), "yyyy-MM-dd")+" 23:59:59";
+       // String benginDate = DateUtil.getDateFormat(new Date(), "yyyy-MM-dd")+" 00:00:00";
+       // String endDate = DateUtil.getDateFormat(new Date(), "yyyy-MM-dd")+" 23:59:59";
         try {
             insOrderPayDateRecordService.batchOrderDate(benginDate,endDate);
             log.info("定时更新订单的签单时间和缴费日期成功");
@@ -79,9 +87,38 @@ public class UpdateOrderTimer {
     private void updateOrderPlyDateMinite() {
         String benginDate = DateUtil.getDateFormat(new Date(), "yyyy-MM-dd")+" 00:00:00";
         String endDate = DateUtil.getDateFormat(new Date(), "yyyy-MM-dd")+" 23:59:59";
+        updatePlyDate(benginDate,endDate);
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/12/30 9:59
+     *  @Description:  晚上一点执行上周数据
+     */
+    @Scheduled(cron = "0 0 1 * * ?")
+    private void updateOrderPlyDateBeforeDawn() {
+        String benginDate = SliceUpDateUtil.getBeforeDay(new Date(), 1) + " 00:00:00";
+        String endDate = SliceUpDateUtil.getBeforeDay(new Date(), 0) + " 23:59:59";
+        updatePlyDate(benginDate,endDate);
+    }
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/12/30 9:59
+     *  @Description:  中午一点更新上周数据
+     */
+    @Scheduled(cron = "0 0 13 * * ?")
+    private void updateOrderPlyDateNoon() {
+        String benginDate = SliceUpDateUtil.getBeforeDay(new Date(), 1) + " 00:00:00";
+        String endDate = SliceUpDateUtil.getBeforeDay(new Date(), 0) + " 23:59:59";
+        updatePlyDate(benginDate,endDate);
+    }
+
+    private void updatePlyDate(String benginDate,String endDate) {
         try {
             insOrderPayDateRecordService.batchOrderPlyOrderDate(benginDate,endDate);
-            log.info("定时更新结算表的签单时间和缴费日期成功");
+            log.info("定时更新结算表的签单时间和缴费日期成功"+new Date().toString());
         } catch (Exception e) {
             e.printStackTrace();
             log.error("定时更新结算表的签单时间和缴费日期失败:{}", e.getMessage());