From 0a50085d6ef51274c28d3915446af6d9ddd91cd2 Mon Sep 17 00:00:00 2001
From: yanderong <307678080@qq.com>
Date: 星期三, 10 六月 2026 18:10:21 +0800
Subject: [PATCH] feat: 订单数据上报到考评系统-默认评分

---
 ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/PushEvaluationLogMapper.xml |    8 ++++
 ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java                      |    4 +-
 ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/PushEvaluationLogMapper.java        |    2 +
 ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/PushEvaluationImpl.java    |   54 +++++++++++++++++---------
 4 files changed, 47 insertions(+), 21 deletions(-)

diff --git a/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/PushEvaluationLogMapper.java b/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/PushEvaluationLogMapper.java
index 6d5f58a..4943911 100644
--- a/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/PushEvaluationLogMapper.java
+++ b/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/PushEvaluationLogMapper.java
@@ -17,4 +17,6 @@
     List<Map<String, Object>> getTaxiOrderList(@Param("startTime") String startTime, @Param("endTime") String endTime);
 
     List<Map<String, Object>> getPrivateCarOrderList(@Param("startTime") String startTime, @Param("endTime") String endTime);
+
+    List<PushEvaluationLog> queryBySerialNumber(@Param("serialNumber") String serialNumber);
 }
\ No newline at end of file
diff --git a/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/PushEvaluationLogMapper.xml b/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/PushEvaluationLogMapper.xml
index c8caf49..9aba03e 100644
--- a/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/PushEvaluationLogMapper.xml
+++ b/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/PushEvaluationLogMapper.xml
@@ -35,6 +35,14 @@
             and (ot.insertTime between #{startTime} and #{endTime})
         </if>
     </select>
+    <select id="queryBySerialNumber" resultType="com.stylefeng.guns.modular.system.model.PushEvaluationLog">
+        select * from sys_push_evaluation_log
+        where status = 1
+        <if test="null != serialNumber">
+            and serial_number = #{serialNumber}
+        </if>
+
+    </select>
 
 
 
diff --git a/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/PushEvaluationImpl.java b/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/PushEvaluationImpl.java
index acacf17..87a1a66 100644
--- a/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/PushEvaluationImpl.java
+++ b/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/PushEvaluationImpl.java
@@ -41,26 +41,42 @@
      */
     @Transactional
     public void pushEvaluation(String startTime, String endTime) {
-        // 获取出租车需要推送的数据
-        List<Map<String, Object>>  mapList = this.baseMapper.getTaxiOrderList(startTime, endTime);
-        List<PushEvaluationRequestDTO> taxiRequestList = PushEvaluationRequestDTO.convert(mapList);
-        if(CollectionUtils.isNotEmpty(taxiRequestList)) {
-            PushEvaluationLog evaluationLog = requestEvaluation(JSON.toJSONString(taxiRequestList));
-            evaluationLog.setSerialNumber("taxi_"+startTime+"_"+endTime);
-            // 记录日志
-            this.insert(evaluationLog);
-        }
-        // 获取专车需要推送的数据
-        List<Map<String, Object>>  mapPrivateList = this.baseMapper.getPrivateCarOrderList(startTime, endTime);
-        List<PushEvaluationRequestDTO> privateRequestList = PushEvaluationRequestDTO.convert(mapPrivateList);
-        if(CollectionUtils.isNotEmpty(privateRequestList)) {
-            PushEvaluationLog evaluationLog = requestEvaluation(JSON.toJSONString(privateRequestList));
-            evaluationLog.setSerialNumber("privateCar_"+startTime+"_"+endTime);
-            // 记录日志
-            this.insert(evaluationLog);
+        String taxiNumber = "taxi_"+startTime+"_"+endTime;
+        log.info("上报数据到考评系统-开始,上报数据条件为 : {}", taxiNumber);
+
+        // 1.获取出租车需要推送的数据
+        List<PushEvaluationLog> existTaxiLogList = this.baseMapper.queryBySerialNumber(taxiNumber);
+        if(CollectionUtils.isEmpty(existTaxiLogList)) {
+            List<Map<String, Object>>  mapList = this.baseMapper.getTaxiOrderList(startTime, endTime);
+            List<PushEvaluationRequestDTO> taxiRequestList = PushEvaluationRequestDTO.convert(mapList);
+            if(CollectionUtils.isNotEmpty(taxiRequestList)) {
+                PushEvaluationLog evaluationLog = requestEvaluation(JSON.toJSONString(taxiRequestList));
+                evaluationLog.setSerialNumber(taxiNumber);
+                // 记录日志
+                this.insert(evaluationLog);
+                log.info("上报数据到考评系统-上报成功-上报数据流水号:{}, 上报数成功数条数:{}", taxiNumber, taxiRequestList.size());
+            }
+        } else {
+            log.info("上报数据到考评系统-校验结果为重复上报-该时间段的出租车订单数据已经上报无需重复上报,上报数据条件为 : {}", taxiNumber);
         }
 
-
+        // 2.获取专车需要推送的数据
+        String privateCarNumber = "privateCar_"+startTime+"_"+endTime;
+        List<PushEvaluationLog> existPrivateCarLogList = this.baseMapper.queryBySerialNumber(privateCarNumber);
+        if(CollectionUtils.isEmpty(existPrivateCarLogList)) {
+            List<Map<String, Object>>  mapPrivateList = this.baseMapper.getPrivateCarOrderList(startTime, endTime);
+            List<PushEvaluationRequestDTO> privateRequestList = PushEvaluationRequestDTO.convert(mapPrivateList);
+            if(CollectionUtils.isNotEmpty(privateRequestList)) {
+                PushEvaluationLog evaluationLog = requestEvaluation(JSON.toJSONString(privateRequestList));
+                evaluationLog.setSerialNumber(privateCarNumber);
+                // 记录日志
+                this.insert(evaluationLog);
+                log.info("上报数据到考评系统-上报成功-上报数据流水号:{}, 上报数成功数条数:{}", privateCarNumber, privateRequestList.size());
+            }
+        } else {
+            log.info("上报数据到考评系统-校验结果为重复上报-该时间段的专车订单数据已经上报无需重复上报,上报数据条件为 : {}", taxiNumber);
+        }
+        log.info("上报数据到考评系统-结束,上报数据条件为 : {}", taxiNumber);
     }
 
     public PushEvaluationLog requestEvaluation(String requestData) {
@@ -73,7 +89,7 @@
         try {
             // 发送请求
             HttpEntity<String> entity = new HttpEntity<>(requestData, headers);
-            log.info("上报数据到考评系统-请求地址为:{},请求参数为 : {}", url, JSON.toJSONString(entity));
+            log.debug("上报数据到考评系统-请求地址为:{},请求参数为 : {}", url, JSON.toJSONString(entity));
             ResponseEntity<PushEvaluationResponseDTO> responseEntity = restTemplate.exchange(url, HttpMethod.POST, entity, PushEvaluationResponseDTO.class);
             // 返回数据
             response = responseEntity.getBody();
diff --git a/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java b/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java
index 0d49af1..72cdfc5 100644
--- a/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java
+++ b/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java
@@ -83,10 +83,10 @@
     }
 
     /**
-     * 每周一零晨3点执行任务
+     * 每周一零晨2点执行任务(cron = "0 0 2 ? * MON")
      * 推送上周订单评价数据
      */
-    @Scheduled(cron = "0 0 3 ? * MON")
+    @Scheduled(cron = "0 0 2 ? * MON")
     public void taskPushEvaluation() {
         try {
             DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

--
Gitblit v1.7.1