wzp
2025-05-03 00c657c1f695771d625e28d958bd3e57fb56da58
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java
@@ -1,7 +1,23 @@
package com.ruoyi.quartz.task;
import com.ruoyi.common.utils.HttpUtil;
import com.ruoyi.system.domain.AOrderStatus;
import com.ruoyi.system.domain.DispatchOrd;
import com.ruoyi.system.domain.OrderStatusCallBackVo;
import com.ruoyi.system.domain.TbOrders;
import com.ruoyi.system.service.IAOrderStatusService;
import com.ruoyi.system.service.IDispatchOrdService;
import com.ruoyi.system.service.ITbOrdersService;
import com.ruoyi.system.service.impl.SysUserServiceImpl;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import com.ruoyi.common.utils.StringUtils;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * 定时任务调度测试
@@ -11,6 +27,16 @@
@Component("ryTask")
public class RyTask
{
    private static final Logger log = LoggerFactory.getLogger(RyTask.class);
    @Autowired
    private IAOrderStatusService orderStatusService;
    @Autowired
    private ITbOrdersService tbOrdersService;
    @Autowired
    private IDispatchOrdService dispatchOrdService;
    public void ryMultipleParams(String s, Boolean b, Long l, Double d, Integer i)
    {
        System.out.println(StringUtils.format("执行多参方法: 字符串类型{},布尔类型{},长整型{},浮点型{},整形{}", s, b, l, d, i));
@@ -25,4 +51,106 @@
    {
        System.out.println("执行无参方法");
    }
    public void ryOrderStatus() {
        try {
            List<AOrderStatus> orderStatusList = orderStatusService.selectAOrderStatusList();
            if (orderStatusList.size() < 0) {
                System.out.println("没有数据");
                return;
            }
            for (AOrderStatus orderStatus : orderStatusList) {
                int count = tbOrdersService.checkServiceOrdIDExists(orderStatus.getServiceOrdID());
                if (count > 0) {
                    // orderStatusService.updateAOrderStatusFlag(orderStatus.getId());
                    System.out.println("服务订单ID存在:" + orderStatus.getServiceOrdID());
                    TbOrders tbOrders = tbOrdersService.selectTbOrdersByServiceOrdID(orderStatus.getServiceOrdID());
                    //获取车牌号
                    String carLicense = "";
                    StringBuilder driverNames = new StringBuilder();
                    StringBuilder driverMobiles = new StringBuilder();
                    try{
                        DispatchOrd dispatchOrd = dispatchOrdService.selectDispatchOrdByServiceOrdIDDt(orderStatus.getServiceOrdID());
                        if(dispatchOrd!=null){
                            carLicense = dispatchOrdService.selectCarLicenseByCarId(Integer.valueOf(dispatchOrd.getDispatchOrdCarID()));
                            String dispatchOAEntourage = dispatchOrd.getDispatchOrd_OAEntourage();
                            String dispatchOAName = dispatchOrd.getDispatchOrd_OAName();
                            if (dispatchOAEntourage != null && dispatchOAName != null) {
                                String[] entourages = dispatchOAEntourage.split(",");
                                String[] names = dispatchOAName.split(",");
                                // 查找所有司机信息
                                for (int i = 0; i < Math.min(entourages.length, names.length); i++) {
                                    if ("司机".equals(entourages[i].trim())) {
                                        String driverMobile = dispatchOrdService.selectDriverMobileByName(names[i].trim());
                                        if (driverNames.length() > 0) {
                                            driverNames.append(",");
                                        }
                                        driverNames.append(names[i].trim());
                                        if (driverMobiles.length() > 0) {
                                            driverMobiles.append(",");
                                        }
                                        driverMobiles.append(driverMobile);
                                    }
                                }
                            }
                        }
                    }
                    catch (Exception e)
                    {
                        log.error("获取调度单异常:"+e.getMessage());
                    }
                    // 使用获取到的所有司机姓名
                    String callbackUrl = "http://localhost:8080/system/apitest/orderCallback";
                    try {
                        // 构建请求参数
                        Map<String, String> map = new HashMap<>();
                        map.put("orderID", tbOrders.getOrderID().toString());
                        map.put("thirdOrderNo", orderStatus.getServiceOrdID());
                        map.put("orderStatus","1");
                        map.put("orderRemark", orderStatus.getMsg());
                        map.put("plateNo",carLicense);
                        map.put("driverMobile",driverMobiles.toString());
                        map.put("driverName", driverNames.toString());
                        // 打印请求参数
                        log.info("发送回调请求,URL: " + callbackUrl);
                        log.info("请求参数: " + map);
                        // 发送请求并获取响应
                        String response = HttpUtil.post(callbackUrl, map);
                        // 打印响应结果
                        log.info("回调响应结果: " + response);
                        // 更新状态
                        // orderStatusService.updateAOrderStatusFlag(orderStatus.getId());
                    } catch (Exception e) {
                        log.error("回调请求失败: " + e.getMessage());
                        // 可以考虑重试机制或者记录失败日志
                    }
                }
                else {
                    log.info("服务订单ID不存在:" + orderStatus.getServiceOrdID());
                    orderStatusService.updateAOrderStatusFlag(orderStatus.getId());
                }
            }
        } catch (Exception e) {
            log.error("执行失败: " + e.getMessage());
            e.printStackTrace();
        }
    }
}