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; /** * 定时任务调度测试 * * @author ruoyi */ @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)); } public void ryParams(String params) { System.out.println("执行有参方法:" + params); } public void ryNoParams() { System.out.println("执行无参方法"); } public void ryOrderStatus() { try { List 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 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(); } } }