yanderong
2026-06-10 0a50085d6ef51274c28d3915446af6d9ddd91cd2
feat: 订单数据上报到考评系统-默认评分
4个文件已修改
68 ■■■■■ 已修改文件
ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/PushEvaluationLogMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/PushEvaluationLogMapper.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/PushEvaluationImpl.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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);
}
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>
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();
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");