From 3dc3bdfbdcdb73ca68ee520bf6a9558c51f32fb3 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期四, 26 六月 2025 13:59:55 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/taxi/TOrderTaxiController.java | 366 ++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 325 insertions(+), 41 deletions(-)
diff --git a/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/taxi/TOrderTaxiController.java b/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/taxi/TOrderTaxiController.java
index 4dc5037..1291846 100644
--- a/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/taxi/TOrderTaxiController.java
+++ b/ManagementOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/taxi/TOrderTaxiController.java
@@ -6,23 +6,25 @@
import com.baomidou.mybatisplus.plugins.Page;
import com.stylefeng.guns.core.base.controller.BaseController;
import com.stylefeng.guns.core.common.constant.factory.PageFactory;
+import com.stylefeng.guns.core.log.LogObjectHolder;
import com.stylefeng.guns.core.shiro.ShiroKit;
+import com.stylefeng.guns.core.util.DateUtil;
+import com.stylefeng.guns.core.util.ExcelExportUtil;
import com.stylefeng.guns.core.util.SinataUtil;
import com.stylefeng.guns.core.util.ToolUtil;
import com.stylefeng.guns.modular.system.model.*;
import com.stylefeng.guns.modular.system.service.*;
import com.stylefeng.guns.modular.system.util.*;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.*;
import org.springframework.ui.Model;
-import org.springframework.beans.factory.annotation.Autowired;
-import com.stylefeng.guns.core.log.LogObjectHolder;
+import org.springframework.util.CollectionUtils;
+import org.springframework.web.bind.annotation.*;
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.InputStreamReader;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.*;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.*;
@@ -37,50 +39,37 @@
@RequestMapping("/tOrderTaxi")
public class TOrderTaxiController extends BaseController {
+ public static List<Integer> orderIds = new ArrayList<>();
private String PREFIX = "/system/tOrderTaxi/";
-
@Autowired
private ITOrderTaxiService tOrderTaxiService;
@Autowired
private ITPubTransactionDetailsService pubTransactionDetailsService;
-
@Autowired
private ITOrderPositionService tOrderPositionService;
-
@Autowired
private ITDriverService tDriverService;
-
@Autowired
private GDMapElectricFenceUtil gdMapElectricFenceUtil;
-
@Autowired
private GDMapGeocodingUtil gdMapGeocodingUtil;
-
@Autowired
private ITUserService itUserService;
-
@Autowired
private PushUtil pushUtil;
-
@Autowired
private ITCompanyCityService companyCityService;
-
@Autowired
private ITSysPushOrderService pushOrderService;
-
@Autowired
private RedisUtil redisUtil;
-
@Autowired
private ITDriverService driverService;
-
@Autowired
private ITSystemNoticeService systemNoticeService;
-
- public static List<Integer> orderIds = new ArrayList<>();
-
@Value("${filePath}")
private String filePath;
+ private ResultUtil resultUtil;
/**
* 跳转到出租车订单首页
@@ -102,25 +91,73 @@
* 跳转到修改出租车订单
*/
@RequestMapping("/tOrderTaxi_update/{tOrderTaxiId}")
- public String tOrderTaxiUpdate(@PathVariable Integer tOrderTaxiId, Model model) {
+ public String tOrderTaxiUpdate(@PathVariable Integer tOrderTaxiId, Model model) throws IOException {
Map<String, Object> tOrderTaxi = tOrderTaxiService.getTaxiOrderDetailById(tOrderTaxiId);
model.addAttribute("item",tOrderTaxi);
// 查询司机扣款
- TPubTransactionDetails tPubTransactionDetails = pubTransactionDetailsService.selectOne(new EntityWrapper<TPubTransactionDetails>()
+ List<TPubTransactionDetails> tPubTransactionDetails = pubTransactionDetailsService.selectList(new EntityWrapper<TPubTransactionDetails>()
.eq("userId", tOrderTaxi.get("driverId"))
- .eq("state", 2)
+ .eq("orderId", tOrderTaxi.get("id"))
.eq("type", 1)
- .eq("userType", 6)
- .eq("payState", 2)
- .last("LIMIT 1"));
- model.addAttribute("companyMoney",tPubTransactionDetails.getMoney());
- model.addAttribute("driverMoney",new BigDecimal(tOrderTaxi.get("payMoney").toString()).subtract(tPubTransactionDetails.getMoney()));
- if(tOrderTaxi.get("payManner").equals("1")){
+ .eq("userType", 2));
+ if(CollectionUtils.isEmpty(tPubTransactionDetails)){
+ model.addAttribute("companyMoney","");
+ model.addAttribute("driverMoney","");
+ }else {
+ TPubTransactionDetails pubTransactionDetailCompany = tPubTransactionDetails.stream().filter(e -> e.getOrderType().equals(6)).findFirst().orElse(null);
+ if(Objects.nonNull(pubTransactionDetailCompany)){
+ model.addAttribute("companyMoney",pubTransactionDetailCompany.getMoney());
+ }else {
+ model.addAttribute("companyMoney","");
+ }
+ TPubTransactionDetails pubTransactionDetailDriver = tPubTransactionDetails.stream().filter(e -> e.getOrderType().equals(2)).findFirst().orElse(null);
+ if(Objects.nonNull(pubTransactionDetailDriver)){
+ model.addAttribute("driverMoney",pubTransactionDetailDriver.getMoney());
+ }else {
+ model.addAttribute("driverMoney","");
+ }
+ }
+ if(tOrderTaxi.get("payManner")!=null && Integer.parseInt(tOrderTaxi.get("payManner").toString()) == 1){
model.addAttribute("payMannerStr","线上收款");
}else {
model.addAttribute("payMannerStr","计费打表");
}
LogObjectHolder.me().set(tOrderTaxi);
+ try{
+ //将数据存储到文件中
+ File file = new File(filePath + tOrderTaxiId + "_2.txt");
+
+ //读取文件(字符流)
+ BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(file),"UTF-8"));
+ //循环取出数据
+ String str = null;
+ StringBuffer sb = new StringBuffer();
+ while ((str = in.readLine()) != null) {
+ sb.append(str);
+ }
+ List<TOrderPosition> list = JSONArray.parseArray(sb.toString(), TOrderPosition.class);
+ List<Map> maps = new ArrayList<>();
+ for (TOrderPosition tOrderPosition : list) {
+ Map<String, String> map = new HashMap<>();
+ map.put("lon",tOrderPosition.getLon());
+ map.put("lat",tOrderPosition.getLat());
+ maps.add(map);
+ }
+
+// resultUtil = ResultUtil.success(list);
+ // 将maps转化为jsonArray字符串
+ // 使用 Gson 转换为 JSON 字符串
+// Gson gson = new Gson();
+// String jsonString = gson.toJson(maps);
+// System.out.println(jsonString);
+ model.addAttribute("guiji",maps);
+ }catch (Exception e){
+ e.printStackTrace();
+ resultUtil = ResultUtil.runErr();
+ model.addAttribute("guiji","");
+ }
+
+
return PREFIX + "tOrderTaxi_edit.html";
}
@@ -139,11 +176,43 @@
* 跳转到出租车订单轨迹页面
*/
@RequestMapping("/tOrderTaxi_trajectory/{tOrderTaxiId}")
- public String tOrderTaxi_trajectory(@PathVariable Integer tOrderTaxiId, Model model) {
+ public String tOrderTaxi_trajectory(@PathVariable Integer tOrderTaxiId, Model model) throws IOException {
model.addAttribute("tOrderTaxiId",tOrderTaxiId);
+ try{
+ //将数据存储到文件中
+ File file = new File(filePath + tOrderTaxiId + "_2.txt");
+
+ //读取文件(字符流)
+ BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(file),"UTF-8"));
+ //循环取出数据
+ String str = null;
+ StringBuffer sb = new StringBuffer();
+ while ((str = in.readLine()) != null) {
+ sb.append(str);
+ }
+ List<TOrderPosition> list = JSONArray.parseArray(sb.toString(), TOrderPosition.class);
+ List<Map> maps = new ArrayList<>();
+ for (TOrderPosition tOrderPosition : list) {
+ Map<String, String> map = new HashMap<>();
+ map.put("lon",tOrderPosition.getLon());
+ map.put("lat",tOrderPosition.getLat());
+ maps.add(map);
+ }
+// resultUtil = ResultUtil.success(list);
+ // 将maps转化为jsonArray字符串
+ // 使用 Gson 转换为 JSON 字符串
+// Gson gson = new Gson();
+// String jsonString = gson.toJson(maps);
+// System.out.println(jsonString);
+ model.addAttribute("guiji",maps);
+ }catch (Exception e){
+ e.printStackTrace();
+ resultUtil = ResultUtil.runErr();
+ model.addAttribute("guiji","");
+ }
return PREFIX + "tOrderTaxi_trajectory.html";
}
-
+
/**
* 获取出租车订单列表
*/
@@ -169,6 +238,222 @@
page.setRecords(tOrderTaxiService.getTaxiOrderList(page,beginTime,endTime,ShiroKit.getUser().getRoleType(),ShiroKit.getUser().getObjectId(),orderNum,orderSource,userName,userPhone,passengers,passengersPhone,driver,state));
return super.packForBT(page);
}
+
+ /**
+ * 导出订单
+ * @param insertTime
+ * @param orderNum
+ * @param orderSource
+ * @param userName
+ * @param userPhone
+ * @param passengers
+ * @param passengersPhone
+ * @param driver
+ * @param state
+ * @param request
+ * @param response
+ */
+ @GetMapping("/export")
+ public void export(String insertTime,
+ String orderNum,
+ Integer orderSource,
+ String userName,
+ String userPhone,
+ String passengers,
+ String passengersPhone,
+ String driver,
+ Integer state, HttpServletRequest request, HttpServletResponse response){
+ String beginTime = null;
+ String endTime = null;
+ if (SinataUtil.isNotEmpty(insertTime)){
+ String[] timeArray = insertTime.split(" - ");
+ beginTime = timeArray[0];
+ endTime = timeArray[1];
+ }
+ Page<Map<String, Object>> page = new Page(1, 99999);
+ List<Map<String, Object>> taxiOrderList = tOrderTaxiService.getTaxiOrderList(page, beginTime, endTime, ShiroKit.getUser().getRoleType(), ShiroKit.getUser().getObjectId(), orderNum, orderSource, userName, userPhone, passengers, passengersPhone, driver, state);
+
+ // 表格数据【封装】
+ List<List<String>> dataList = new ArrayList<>();
+
+ // 列【封装】
+ List<String> shellList = new ArrayList<String>();
+ shellList.add("下单时间");
+ shellList.add("订单编号");
+ shellList.add("订单来源");
+ shellList.add("乘车时间");
+ shellList.add("下单用户昵称");
+ shellList.add("下单用户手机");
+ shellList.add("乘车用户姓名");
+ shellList.add("乘车用户手机");
+ shellList.add("起点");
+ shellList.add("终点");
+ shellList.add("接单司机");
+ shellList.add("司机手机号");
+ shellList.add("车辆所属机构");
+ shellList.add("接单车辆");
+ shellList.add("订单金额");
+ shellList.add("司机抽成");
+ shellList.add("状态");
+ dataList.add(shellList);
+
+ for (Map<String,Object> object : taxiOrderList){
+ // 详细数据列【封装】
+ shellList = new ArrayList<String>();
+ if(SinataUtil.isNotEmpty(object.get("insertTime"))){
+ shellList.add(DateUtil.formatDate(DateUtil.parse(object.get("insertTime").toString(),"YYYY-MM-dd HH:mm:ss.S"), "YYYY-MM-dd HH:mm"));
+ }else{
+ shellList.add("-");
+ }
+ if(SinataUtil.isNotEmpty(object.get("orderNum"))){
+ shellList.add(object.get("orderNum").toString());
+ }else{
+ shellList.add("-");
+ }
+ if(SinataUtil.isNotEmpty(object.get("orderSource"))){
+ switch (object.get("orderSource").toString()){
+ case "1":
+ shellList.add("APP下单");
+ break;
+ case "2":
+ shellList.add("扫码下单");
+ break;
+ case "3":
+ shellList.add("小程序下单");
+ break;
+ case "4":
+ shellList.add("司机下单");
+ break;
+ case "5":
+ shellList.add("调度下单");
+ break;
+ case "6":
+ shellList.add("电话下单");
+ break;
+ case "7":
+ shellList.add("95128电召");
+ break;
+ }
+ }else{
+ shellList.add("-");
+ }
+ if(SinataUtil.isNotEmpty(object.get("travelTime"))){
+ shellList.add(DateUtil.formatDate(DateUtil.parse(object.get("travelTime").toString(),"YYYY-MM-dd HH:mm:ss.S"), "YYYY-MM-dd HH:mm"));
+ }else{
+ shellList.add("-");
+ }
+ if(SinataUtil.isNotEmpty(object.get("userName"))){
+ shellList.add(object.get("userName").toString());
+ }else{
+ shellList.add("-");
+ }
+ if(SinataUtil.isNotEmpty(object.get("userPhone"))){
+ shellList.add(object.get("userPhone").toString());
+ }else{
+ shellList.add("-");
+ }
+ if(SinataUtil.isNotEmpty(object.get("passengers"))){
+ shellList.add(object.get("passengers").toString());
+ }else{
+ shellList.add("-");
+ }
+ if(SinataUtil.isNotEmpty(object.get("passengersPhone"))){
+ shellList.add(object.get("passengersPhone").toString());
+ }else{
+ shellList.add("-");
+ }
+ if(SinataUtil.isNotEmpty(object.get("startAddress"))){
+ shellList.add(object.get("startAddress").toString());
+ }else{
+ shellList.add("-");
+ }
+ if(SinataUtil.isNotEmpty(object.get("endAddress"))){
+ shellList.add(object.get("endAddress").toString());
+ }else{
+ shellList.add("-");
+ }
+ if(SinataUtil.isNotEmpty(object.get("driver"))){
+ shellList.add(object.get("driver").toString().split("-")[0]);
+ }else{
+ shellList.add("-");
+ }
+ if(SinataUtil.isNotEmpty(object.get("driver"))){
+ shellList.add(object.get("driver").toString().split("-")[1]);
+ }else{
+ shellList.add("-");
+ }
+ if(SinataUtil.isNotEmpty(object.get("company"))){
+ shellList.add(object.get("company").toString());
+ }else{
+ shellList.add("-");
+ }
+ if(SinataUtil.isNotEmpty(object.get("car"))){
+ shellList.add(object.get("car").toString());
+ }else{
+ shellList.add("-");
+ }
+ if(SinataUtil.isNotEmpty(object.get("payMoney"))){
+ shellList.add(object.get("payMoney").toString());
+ }else{
+ shellList.add("-");
+ }
+ if(SinataUtil.isNotEmpty(object.get("commission"))){
+ shellList.add(object.get("commission").toString());
+ }else{
+ shellList.add("-");
+ }
+ if(SinataUtil.isNotEmpty(object.get("state"))){
+ switch (object.get("state").toString()){
+ case "1":
+ shellList.add("待接单");
+ break;
+ case "2":
+ shellList.add("待出发");
+ break;
+ case "3":
+ shellList.add("待到达预约地点");
+ break;
+ case "4":
+ shellList.add("待乘客上车");
+ break;
+ case "5":
+ shellList.add("服务中");
+ break;
+ case "6":
+ shellList.add("完成服务");
+ break;
+ case "7":
+ shellList.add("待支付");
+ break;
+ case "8":
+ shellList.add("待评价");
+ break;
+ case "9":
+ shellList.add("已完成");
+ break;
+ case "10":
+ shellList.add("已取消");
+ break;
+ case "11":
+ shellList.add("改派中");
+ break;
+ case "12":
+ shellList.add("取消待支付");
+ break;
+ }
+ }else{
+ shellList.add("-");
+ }
+ dataList.add(shellList);
+ }
+ try {
+ // 调用工具类进行导出
+ ExcelExportUtil.easySheet("出租车订单"+DateUtil.formatDate(new Date(), "YYYYMMddHHmmss"), "出租车订单", dataList,request, response);
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
/**
* 选择司机列表
@@ -183,8 +468,6 @@
page.setRecords(tOrderTaxiService.getCanSelectTaxiDriverList(page,tOrderTaxi.getCompanyId(),name,phone));
return super.packForBT(page);
}
-
- private ResultUtil resultUtil;
/**
* 获取订单轨迹
@@ -371,12 +654,12 @@
tOrderTaxi.setUserId(tUser.getId());
tOrderTaxi.setOrderNum(this.getOrderNum());
tOrderTaxi.setPlacementAddress(tOrderTaxi.getStartAddress());
- tOrderTaxi.setPlacementLon(Double.valueOf(s.get(0).split(",")[0]));
- tOrderTaxi.setPlacementLat(Double.valueOf(s.get(0).split(",")[1]));
- tOrderTaxi.setStartLon(Double.valueOf(s.get(0).split(",")[0]));
- tOrderTaxi.setStartLat(Double.valueOf(s.get(0).split(",")[1]));
- tOrderTaxi.setEndLon(Double.valueOf(e.get(0).split(",")[0]));
- tOrderTaxi.setEndLat(Double.valueOf(e.get(0).split(",")[1]));
+ tOrderTaxi.setPlacementLon(Double.valueOf(s.get(0).split(",")[1]));
+ tOrderTaxi.setPlacementLat(Double.valueOf(s.get(0).split(",")[0]));
+ tOrderTaxi.setStartLon(Double.valueOf(s.get(0).split(",")[1]));
+ tOrderTaxi.setStartLat(Double.valueOf(s.get(0).split(",")[0]));
+ tOrderTaxi.setEndLon(Double.valueOf(e.get(0).split(",")[1]));
+ tOrderTaxi.setEndLat(Double.valueOf(e.get(0).split(",")[0]));
tOrderTaxi.setMileage(0D);
tOrderTaxi.setOrderMoney(new BigDecimal(0));
tOrderTaxi.setTravelMoney(new BigDecimal(0));
@@ -390,6 +673,7 @@
tOrderTaxi.setSubstitute(0);
tOrderTaxi.setOrderSource(5);
tOrderTaxi.setIsDelete(1);
+ tOrderTaxi.setPayManner(3);
tOrderTaxiService.insert(tOrderTaxi);
if(tOrderTaxi.getState() == 1){
//推送司机抢单
--
Gitblit v1.7.1