From e0201ae86d66acd7127a9c01080731ee22e4b974 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期一, 08 九月 2025 16:41:24 +0800
Subject: [PATCH] 新增加跨城支付

---
 ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TReassignController.java |  378 +++++++++++++++++++++++++++++------------------------
 1 files changed, 206 insertions(+), 172 deletions(-)

diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TReassignController.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TReassignController.java
index 98db265..8a325fd 100644
--- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TReassignController.java
+++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TReassignController.java
@@ -9,6 +9,7 @@
 import com.stylefeng.guns.core.shiro.ShiroUser;
 import com.stylefeng.guns.core.util.ExcelUtil;
 import com.stylefeng.guns.core.util.SinataUtil;
+import com.stylefeng.guns.core.util.ToolUtil;
 import com.stylefeng.guns.modular.system.dao.LineShiftDriverMapper;
 import com.stylefeng.guns.modular.system.dao.OrderCancelMapper;
 import com.stylefeng.guns.modular.system.model.*;
@@ -16,6 +17,9 @@
 import com.stylefeng.guns.modular.system.util.HttpRequestUtil;
 import com.stylefeng.guns.modular.system.util.PushURL;
 import com.stylefeng.guns.modular.system.util.ResultUtil;
+import com.stylefeng.guns.modular.system.util.qianyuntong.OrderUtil;
+import com.stylefeng.guns.modular.system.util.qianyuntong.model.*;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -32,10 +36,7 @@
 import java.math.BigDecimal;
 import java.text.DateFormat;
 import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * 快车改派管理控制器
@@ -43,6 +44,7 @@
  * @author fengshuonan
  * @Date 2020-09-03 14:20:27
  */
+@Slf4j
 @Controller
 @RequestMapping("/tReassign")
 public class TReassignController extends BaseController {
@@ -89,8 +91,12 @@
     private ITOrderTaxiService orderTaxiService;
     @Autowired
     private ShiroExtUtil shiroExtUtil;
-    
-    
+    @Autowired
+    private ITCompanyService iTCompanyService;
+    @Autowired
+    private IUserService sysUserService;
+
+
     /**
      * 跳转到快车改派管理首页
      */
@@ -245,35 +251,44 @@
             for (int i = 0; i < mapList.size(); i++) {
                 Map<String,Object> d=mapList.get(i);
                 values[i] = new String[title.length];
-                values[i][0]=d.get("insertTime").toString();
-                values[i][1]=d.get("originalDriver").toString();
-                values[i][2]=d.get("reason").toString();
-                values[i][3]=d.get("orderNum").toString();
-                values[i][4]=d.get("addOrderUser").toString();
-                values[i][5]=d.get("travelTime").toString();
-                values[i][6]=d.get("startAddress").toString();
-                values[i][7]=d.get("endAddress").toString();
-                values[i][8]=d.get("originalCar").toString();
-                values[i][9]=d.get("money").toString();
+                values[i][0]=null == d.get("insertTime") ? "" : d.get("insertTime").toString();
+                values[i][1]=null == d.get("originalDriver") ? "" : d.get("originalDriver").toString();
+                values[i][2]=null == d.get("reason") ? "" : d.get("reason").toString();
+                values[i][3]=null == d.get("orderNum") ? "" : d.get("orderNum").toString();
+                values[i][4]=null == d.get("addOrderUser") ? "" : d.get("addOrderUser").toString();
+                values[i][5]=null == d.get("travelTime") ? "" : d.get("travelTime").toString();
+                values[i][6]=null == d.get("startAddress") ? "" : d.get("startAddress").toString();
+                values[i][7]=null == d.get("endAddress") ? "" : d.get("endAddress").toString();
+                values[i][8]=null == d.get("originalCar") ? "" : d.get("originalCar").toString();
+                values[i][9]=null == d.get("money") ? "" : d.get("money").toString();
                 values[i][10]=d.get("nowDriver")==null?"":d.get("nowDriver").toString();
                 values[i][11]=d.get("nowCar")==null?"":d.get("nowCar").toString();
-                values[i][12]=d.get("orderState").toString().equals("1")?"待接单":
-                        d.get("orderState").toString().equals("2")?"待出发":
-                                d.get("orderState").toString().equals("3")?"待到达预约地点":
-                                        d.get("orderState").toString().equals("4")?"待取货":
-                                                d.get("orderState").toString().equals("5")?"服务中":
-                                                        d.get("orderState").toString().equals("6")?"已送达":
-                                                                d.get("orderState").toString().equals("7")?"待支付":
-                                                                        d.get("orderState").toString().equals("8")?"需补差价":
-                                                                                d.get("orderState").toString().equals("9")?"已取货":
-                                                                                        d.get("orderState").toString().equals("10")?"已取消":
-                                                                                                d.get("orderState").toString().equals("11")?"改派中":
-                                                                                                        d.get("orderState").toString().equals("12")?"已支付差价":"";
-                values[i][13]=d.get("state").toString().equals("1")?"提交申请":
-                        d.get("state").toString().equals("2")?"已支付":
-                                d.get("state").toString().equals("3")?"已改派":
-                                        d.get("state").toString().equals("4")?"已取消":
-                                                d.get("state").toString().equals("5")?"已拒绝":"";
+                if(null == d.get("orderState")){
+                    values[i][12]="";
+                }else{
+                    values[i][12]=d.get("orderState").toString().equals("1")?"待接单":
+                            d.get("orderState").toString().equals("2")?"待出发":
+                                    d.get("orderState").toString().equals("3")?"待到达预约地点":
+                                            d.get("orderState").toString().equals("4")?"待乘客上车":
+                                                    d.get("orderState").toString().equals("5")?"服务中":
+                                                            d.get("orderState").toString().equals("6")?"已送达":
+                                                                    d.get("orderState").toString().equals("7")?"待支付":
+                                                                            d.get("orderState").toString().equals("8")?"待评价":
+                                                                                    d.get("orderState").toString().equals("9")?"已完成":
+                                                                                            d.get("orderState").toString().equals("10")?"已取消":
+                                                                                                    d.get("orderState").toString().equals("11")?"改派中":
+                                                                                                            d.get("orderState").toString().equals("12")?"取消待支付":"";
+                }
+                if(null == d.get("state")){
+                    values[i][13]="";
+                }else{
+                    values[i][13]=d.get("state").toString().equals("1")?"提交申请":
+                            d.get("state").toString().equals("2")?"已支付":
+                                    d.get("state").toString().equals("3")?"已改派":
+                                            d.get("state").toString().equals("4")?"已取消":
+                                                    d.get("state").toString().equals("5")?"已拒绝":"";
+                }
+
             }
             String fileNameTitle="快车改派";
             HSSFWorkbook wb = ExcelUtil.getHSSFWorkbookTime(fileNameTitle+time, title, values, null,insertTime);
@@ -335,7 +350,7 @@
             Date date = new Date();
             DateFormat format = new SimpleDateFormat("yyyyMMdd");
             String time = format.format(date);
-            String fileName = "快车改派"+time+".xls";
+            String fileName = "跨城改派"+time+".xls";
             String[] title = new String[] {"申请改派时间","申请司机","申请原因","订单编号","下单用户","出发时间","出发地","目的地"
                     ,"原服务车辆","改派处罚金","改派服务司机","改派服务车辆","订单当前状态","改派状态"};
 
@@ -353,37 +368,46 @@
             for (int i = 0; i < mapList.size(); i++) {
                 Map<String,Object> d=mapList.get(i);
                 values[i] = new String[title.length];
-                values[i][0]=d.get("insertTime").toString();
-                values[i][1]=d.get("originalDriver").toString();
-                values[i][2]=d.get("reason").toString();
-                values[i][3]=d.get("orderNum").toString();
-                values[i][4]=d.get("addOrderUser").toString();
-                values[i][5]=d.get("travelTime").toString();
-                values[i][6]=d.get("startAddress").toString();
-                values[i][7]=d.get("endAddress").toString();
-                values[i][8]=d.get("originalCar").toString();
-                values[i][9]=d.get("money").toString();
+                values[i][0]=null == d.get("insertTime") ? "" : d.get("insertTime").toString();
+                values[i][1]=null == d.get("originalDriver") ? "" : d.get("originalDriver").toString();
+                values[i][2]=null == d.get("reason") ? "" : d.get("reason").toString();
+                values[i][3]=null == d.get("orderNum") ? "" : d.get("orderNum").toString();
+                values[i][4]=null == d.get("addOrderUser") ? "" : d.get("addOrderUser").toString();
+                values[i][5]=null == d.get("travelTime") ? "" : d.get("travelTime").toString();
+                values[i][6]=null == d.get("startAddress") ? "" : d.get("startAddress").toString();
+                values[i][7]=null == d.get("endAddress") ? "" : d.get("endAddress").toString();
+                values[i][8]=null == d.get("originalCar") ? "" : d.get("originalCar").toString();
+                values[i][9]=null == d.get("money") ? "" : d.get("money").toString();
                 values[i][10]=d.get("nowDriver")==null?"":d.get("nowDriver").toString();
                 values[i][11]=d.get("nowCar")==null?"":d.get("nowCar").toString();
-                values[i][12]=d.get("orderState").toString().equals("1")?"待接单":
-                        d.get("orderState").toString().equals("2")?"待出发":
-                                d.get("orderState").toString().equals("3")?"待到达预约地点":
-                                        d.get("orderState").toString().equals("4")?"待取货":
-                                                d.get("orderState").toString().equals("5")?"服务中":
-                                                        d.get("orderState").toString().equals("6")?"已送达":
-                                                                d.get("orderState").toString().equals("7")?"待支付":
-                                                                        d.get("orderState").toString().equals("8")?"需补差价":
-                                                                                d.get("orderState").toString().equals("9")?"已取货":
-                                                                                        d.get("orderState").toString().equals("10")?"已取消":
-                                                                                                d.get("orderState").toString().equals("11")?"改派中":
-                                                                                                        d.get("orderState").toString().equals("12")?"已支付差价":"";
-                values[i][13]=d.get("state").toString().equals("1")?"提交申请":
-                        d.get("state").toString().equals("2")?"已支付":
-                                d.get("state").toString().equals("3")?"已改派":
-                                        d.get("state").toString().equals("4")?"已取消":
-                                                d.get("state").toString().equals("5")?"已拒绝":"";
+                if(null == d.get("orderState")){
+                    values[i][12]="";
+                }else{
+                    values[i][12]=d.get("orderState").toString().equals("1")?"待接单":
+                            d.get("orderState").toString().equals("2")?"待出发":
+                                    d.get("orderState").toString().equals("3")?"待到达预约地点":
+                                            d.get("orderState").toString().equals("4")?"待乘客上车":
+                                                    d.get("orderState").toString().equals("5")?"服务中":
+                                                            d.get("orderState").toString().equals("6")?"已送达":
+                                                                    d.get("orderState").toString().equals("7")?"待支付":
+                                                                            d.get("orderState").toString().equals("8")?"待评价":
+                                                                                    d.get("orderState").toString().equals("9")?"已完成":
+                                                                                            d.get("orderState").toString().equals("10")?"已取消":
+                                                                                                    d.get("orderState").toString().equals("11")?"改派中":
+                                                                                                            d.get("orderState").toString().equals("12")?"取消待支付":"";
+                }
+                if(null == d.get("state")){
+                    values[i][13]="";
+                }else{
+                    values[i][13]=d.get("state").toString().equals("1")?"提交申请":
+                            d.get("state").toString().equals("2")?"已支付":
+                                    d.get("state").toString().equals("3")?"已改派":
+                                            d.get("state").toString().equals("4")?"已取消":
+                                                    d.get("state").toString().equals("5")?"已拒绝":"";
+                }
+
             }
-            String fileNameTitle="快车改派";
+            String fileNameTitle="跨城改派";
             HSSFWorkbook wb = ExcelUtil.getHSSFWorkbookTime(fileNameTitle+time, title, values, null,insertTime);
             this.setResponseHeader(response, fileName);
             OutputStream os = response.getOutputStream();
@@ -444,7 +468,7 @@
             Date date = new Date();
             DateFormat format = new SimpleDateFormat("yyyyMMdd");
             String time = format.format(date);
-            String fileName = "快车改派"+time+".xls";
+            String fileName = "小件物流改派"+time+".xls";
             String[] title = new String[] {"申请改派时间","申请司机","申请原因","订单编号","下单用户","出发时间","出发地","目的地"
                     ,"原服务车辆","改派处罚金","改派服务司机","改派服务车辆","订单当前状态","改派状态"};
 
@@ -462,37 +486,46 @@
             for (int i = 0; i < mapList.size(); i++) {
                 Map<String,Object> d=mapList.get(i);
                 values[i] = new String[title.length];
-                values[i][0]=d.get("insertTime").toString();
-                values[i][1]=d.get("originalDriver").toString();
-                values[i][2]=d.get("reason").toString();
-                values[i][3]=d.get("orderNum").toString();
-                values[i][4]=d.get("addOrderUser").toString();
-                values[i][5]=d.get("travelTime").toString();
-                values[i][6]=d.get("startAddress").toString();
-                values[i][7]=d.get("endAddress").toString();
-                values[i][8]=d.get("originalCar").toString();
-                values[i][9]=d.get("money").toString();
+                values[i][0]=null == d.get("insertTime") ? "" : d.get("insertTime").toString();
+                values[i][1]=null == d.get("originalDriver") ? "" : d.get("originalDriver").toString();
+                values[i][2]=null == d.get("reason") ? "" : d.get("reason").toString();
+                values[i][3]=null == d.get("orderNum") ? "" : d.get("orderNum").toString();
+                values[i][4]=null == d.get("addOrderUser") ? "" : d.get("addOrderUser").toString();
+                values[i][5]=null == d.get("travelTime") ? "" : d.get("travelTime").toString();
+                values[i][6]=null == d.get("startAddress") ? "" : d.get("startAddress").toString();
+                values[i][7]=null == d.get("endAddress") ? "" : d.get("endAddress").toString();
+                values[i][8]=null == d.get("originalCar") ? "" : d.get("originalCar").toString();
+                values[i][9]=null == d.get("money") ? "" : d.get("money").toString();
                 values[i][10]=d.get("nowDriver")==null?"":d.get("nowDriver").toString();
                 values[i][11]=d.get("nowCar")==null?"":d.get("nowCar").toString();
-                values[i][12]=d.get("orderState").toString().equals("1")?"待接单":
-                        d.get("orderState").toString().equals("2")?"待出发":
-                                d.get("orderState").toString().equals("3")?"待到达预约地点":
-                                        d.get("orderState").toString().equals("4")?"待取货":
-                                                d.get("orderState").toString().equals("5")?"服务中":
-                                                        d.get("orderState").toString().equals("6")?"已送达":
-                                                                d.get("orderState").toString().equals("7")?"待支付":
-                                                                        d.get("orderState").toString().equals("8")?"需补差价":
-                                                                                d.get("orderState").toString().equals("9")?"已取货":
-                                                                                        d.get("orderState").toString().equals("10")?"已取消":
-                                                                                                d.get("orderState").toString().equals("11")?"改派中":
-                                                                                                        d.get("orderState").toString().equals("12")?"已支付差价":"";
-                values[i][13]=d.get("state").toString().equals("1")?"提交申请":
-                        d.get("state").toString().equals("2")?"已支付":
-                                d.get("state").toString().equals("3")?"已改派":
-                                        d.get("state").toString().equals("4")?"已取消":
-                                                d.get("state").toString().equals("5")?"已拒绝":"";
+                if(null == d.get("orderState")){
+                    values[i][12]="";
+                }else{
+                    values[i][12]=d.get("orderState").toString().equals("1")?"待接单":
+                            d.get("orderState").toString().equals("2")?"待出发":
+                                    d.get("orderState").toString().equals("3")?"待到达预约地点":
+                                            d.get("orderState").toString().equals("4")?"待取货":
+                                                    d.get("orderState").toString().equals("5")?"服务中":
+                                                            d.get("orderState").toString().equals("6")?"已送达":
+                                                                    d.get("orderState").toString().equals("7")?"待支付":
+                                                                            d.get("orderState").toString().equals("8")?"需补差价":
+                                                                                    d.get("orderState").toString().equals("9")?"已取货":
+                                                                                            d.get("orderState").toString().equals("10")?"已取消":
+                                                                                                    d.get("orderState").toString().equals("11")?"改派中":
+                                                                                                            d.get("orderState").toString().equals("12")?"已支付差价":"";
+                }
+                if(null == d.get("state")){
+                    values[i][13]="";
+                }else{
+                    values[i][13]=d.get("state").toString().equals("1")?"提交申请":
+                            d.get("state").toString().equals("2")?"已支付":
+                                    d.get("state").toString().equals("3")?"已改派":
+                                            d.get("state").toString().equals("4")?"已取消":
+                                                    d.get("state").toString().equals("5")?"已拒绝":"";
+                }
+
             }
-            String fileNameTitle="快车改派";
+            String fileNameTitle="小件物流改派";
             HSSFWorkbook wb = ExcelUtil.getHSSFWorkbookTime(fileNameTitle+time, title, values, null,insertTime);
             this.setResponseHeader(response, fileName);
             OutputStream os = response.getOutputStream();
@@ -552,7 +585,7 @@
             Date date = new Date();
             DateFormat format = new SimpleDateFormat("yyyyMMdd");
             String time = format.format(date);
-            String fileName = "快车改派"+time+".xls";
+            String fileName = "出租车改派"+time+".xls";
             String[] title = new String[] {"申请改派时间","申请司机","申请原因","订单编号","下单用户","出发时间","出发地","目的地"
                     ,"原服务车辆","改派处罚金","改派服务司机","改派服务车辆","订单当前状态","改派状态"};
 
@@ -588,22 +621,26 @@
                     values[i][12]=d.get("orderState").toString().equals("1")?"待接单":
                             d.get("orderState").toString().equals("2")?"待出发":
                                     d.get("orderState").toString().equals("3")?"待到达预约地点":
-                                            d.get("orderState").toString().equals("4")?"待取货":
+                                            d.get("orderState").toString().equals("4")?"待乘客上车":
                                                     d.get("orderState").toString().equals("5")?"服务中":
-                                                            d.get("orderState").toString().equals("6")?"已送达":
+                                                            d.get("orderState").toString().equals("6")?"完成服务":
                                                                     d.get("orderState").toString().equals("7")?"待支付":
-                                                                            d.get("orderState").toString().equals("8")?"需补差价":
-                                                                                    d.get("orderState").toString().equals("9")?"已取货":
+                                                                            d.get("orderState").toString().equals("8")?"待评价":
+                                                                                    d.get("orderState").toString().equals("9")?"已完成":
                                                                                             d.get("orderState").toString().equals("10")?"已取消":
                                                                                                     d.get("orderState").toString().equals("11")?"改派中":
-                                                                                                            d.get("orderState").toString().equals("12")?"已支付差价":"";
+                                                                                                            d.get("orderState").toString().equals("12")?"取消待支付":"";
                 }
-                
-                values[i][13]=d.get("state").toString().equals("1")?"提交申请":
-                        d.get("state").toString().equals("2")?"已支付":
-                                d.get("state").toString().equals("3")?"已改派":
-                                        d.get("state").toString().equals("4")?"已取消":
-                                                d.get("state").toString().equals("5")?"已拒绝":"";
+                if(null == d.get("state")){
+                    values[i][13]="";
+                }else{
+                    values[i][13]=d.get("state").toString().equals("1")?"提交申请":
+                            d.get("state").toString().equals("2")?"已支付":
+                                    d.get("state").toString().equals("3")?"已改派":
+                                            d.get("state").toString().equals("4")?"已取消":
+                                                    d.get("state").toString().equals("5")?"已拒绝":"";
+                }
+
             }
             String fileNameTitle="快车改派";
             HSSFWorkbook wb = ExcelUtil.getHSSFWorkbookTime(fileNameTitle+time, title, values, null,insertTime);
@@ -776,6 +813,7 @@
     @ResponseBody
     public Object optCross(@RequestParam Integer tReassignId,@RequestParam Integer optType) {
         try {
+
             TReassign tReassign = tReassignService.selectById(tReassignId);
             ShiroUser user = shiroExtUtil.getUser();
             if (1 == optType) {
@@ -797,6 +835,23 @@
                 TOrderCrossCity tOrderCrossCity = itOrderCrossCityService.selectById(tReassign.getOrderId());
                 tOrderCrossCity.setState(tOrderCrossCity.getOldState());
                 itOrderCrossCityService.updateById(tOrderCrossCity);
+
+                //中台修改订单状态
+                if(ToolUtil.isNotEmpty(tOrderCrossCity.getTravelId())){
+                    TCompany company = iTCompanyService.selectById(driver.getCompanyId());
+                    //中台修改订单状态
+                    ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
+                    request.setOrderId(tOrderCrossCity.getTravelId());
+                    request.setStatus(tOrderCrossCity.getState());
+                    request.setDriverId(driver.getEmpId().toString());
+                    if (2 == tOrderCrossCity.getPromotion()) {
+                        TDriver driver1 = itDriverService.selectById(tOrderCrossCity.getPromotionDriverId());
+                        request.setPromoterId(driver1.getEmpId().toString());
+                    }
+                    request.setSupplierShopId(company.getEnterCode());
+                    OrderUtil.modifyTravelItinerary(request);
+                }
+
             }else if (2 == optType){
                 tReassign.setState(4);
                 tReassign.setReviewer(user.getId());
@@ -854,45 +909,40 @@
                         //添加交易明细
                         transactionDetailsService.saveData(orderCrossCity.getUserId(), "跨城订单取消退款", orderCrossCity.getPayMoney().doubleValue(), 1, 1, 1, 3, tReassign.getOrderId());
                     }else{
-//                        PaymentRecord query = paymentRecordService.query(1, null, null, tReassign.getOrderId(), 3, null, 2).get(0);
-//                        if(null == query){
-//                            return ResultUtil.error("订单还未进行支付");
-//                        }
-//                        Map<String, Object> merrefund = icbcPayUtil.merrefund(query.getCode(), "", query.getAmount(), tReassign.getOrderId() + "_3", orderCrossCity.getOrderNum());
-//                        if(Integer.valueOf(merrefund.get("code").toString()) == 0){
-//                            boolean b = true;
-//                            while (b){
-//                                Map<String, Object> refundqry = icbcPayUtil.refundqry("", query.getCode(), orderCrossCity.getOrderNum());
-//                                if(Integer.valueOf(refundqry.get("code").toString()) == 0 && Integer.valueOf(refundqry.get("pay_status").toString()) == 0){//成功
-//                                    //添加交易明细
-//                                    transactionDetailsService.saveData(orderCrossCity.getUserId(), "跨城订单取消退款", query.getAmount(), 1, 1, 1, 3, tReassign.getOrderId());
-//                                }
-//                                if(Integer.valueOf(refundqry.get("code").toString()) == 0 && Integer.valueOf(refundqry.get("pay_status").toString()) == 1){//失败
-//                                    return ResultUtil.error("订单取消失败(退款不成功)");
-//                                }
-//                                if(Integer.valueOf(refundqry.get("code").toString()) == 0 && Integer.valueOf(refundqry.get("pay_status").toString()) == 2){//未知
-//                                    return ResultUtil.error("退款返回未知异常");
-//                                }
-//                            }
-//                        }
-                    }
+                        //中台订单退款操作
+                        if(ToolUtil.isNotEmpty(orderCrossCity.getTravelId())){
+                            User user1 = sysUserService.selectById(user.getId());
+                            List<PaymentRecord> list = paymentRecordService.query(1, orderCrossCity.getUserId(), 1, orderCrossCity.getId(), 3, 1, 2);
+                            PaymentRecord query = list.get(0);
+                            TradeOrderRefundRequest request = new TradeOrderRefundRequest();
+                            request.setPartnerPayId(orderCrossCity.getTravelId());
+                            request.setPayId(query.getCode());
+                            request.setRefundTotalFee(orderCrossCity.getPayMoney().multiply(new BigDecimal(100)).intValue() + "");
+                            request.setRemark("服务商取消订单退款");
+                            request.setRefundType("RF");
 
-                    //添加负的收入明细
-                    List<Income> incomes = incomeService.selectList(new EntityWrapper<Income>().eq("type", 2).eq("incomeId", tReassign.getOrderId()).eq("orderType", 3));
-                    for(Income income : incomes){
-                        if(income.getUserType() == 2){//处理司机的收入
-                            TDriver driver = itDriverService.selectById(income.getObjectId());
-                            driver.setBalance(driver.getBalance().subtract(new BigDecimal(income.getMoney())));
-                            driver.setLaveBusinessMoney(new BigDecimal(driver.getLaveBusinessMoney()).subtract(new BigDecimal(income.getMoney())).doubleValue());
-                            driver.setBusinessMoney(new BigDecimal(driver.getBusinessMoney()).subtract(new BigDecimal(income.getMoney())).doubleValue());
-                            itDriverService.updateById(driver);
+                            RefundInfoRequest refundInfo = new RefundInfoRequest();
+                            refundInfo.setPayItemId(orderCrossCity.getTravelId());
+                            refundInfo.setPayId(query.getCode());
+                            refundInfo.setTradeFee(orderCrossCity.getPayMoney().multiply(new BigDecimal(100)).intValue() + "");
+                            request.setRefundInfos(new ArrayList<RefundInfoRequest>(){{
+                                add(refundInfo);
+                            }});
+                            TradeOrderRefund tradeOrderRefund = OrderUtil.tradeOrderRefund(request);
+                            //退款通知
+                            OrderRefundNoticeRequest request1 = new OrderRefundNoticeRequest();
+                            request1.setOrderId(orderCrossCity.getTravelId());
+                            request1.setRefundPayNum(tradeOrderRefund.getRefundId());
+                            request1.setRefundType("5");
+                            request1.setApplyRefundCharge(orderCrossCity.getPayMoney());
+                            request1.setActualRefundCharge(orderCrossCity.getPayMoney());
+                            request1.setRefundAccount(user1.getEmpId().toString());
+                            request1.setRemark("服务商取消订单退款");
+                            OrderUtil.orderRefundNotice(request1);
+
+                            //添加交易明细
+                            transactionDetailsService.saveData(orderCrossCity.getUserId(), "跨城订单取消退款", query.getAmount(), 1, 1, 1, 3, tReassign.getOrderId());
                         }
-                        Income income1 = new Income();
-                        BeanUtils.copyProperties(income, income1);
-                        income1.setMoney(income.getMoney() * -1);
-                        income1.setId(null);
-                        income1.setInsertTime(new Date());
-                        incomeService.insert(income1);
                     }
                 }
 
@@ -908,22 +958,6 @@
                 orderCancel.setUserId(user.getId());
                 orderCancelMapper.insert(orderCancel);
             }
-
-            //返回驾驶员处罚金
-            TDriver originalDriver = itDriverService.selectById(tReassign.getOriginalDriverId());
-
-            //增加交易明细
-            TPubTransactionDetails details = new TPubTransactionDetails();
-            details.setUserId(originalDriver.getId());
-            details.setInsertTime(new Date());
-            details.setRemark("【跨城改派】:改派失败或订单取消");
-            details.setMoney(new BigDecimal(tReassign.getMoney()));
-            details.setState(1);
-            details.setType(1);
-            details.setUserType(2);
-            details.setOrderType(3);
-            details.setOrderId(tReassign.getOrderId());
-            itPubTransactionDetailsService.insert(details);
         }catch (Exception e){
             e.printStackTrace();
         }
@@ -1245,6 +1279,7 @@
         }
         if(driver.getState() == 2){
             driver.setState(3);
+            itDriverService.updateById(driver);
         }
 
         //修改订单数据
@@ -1269,24 +1304,23 @@
         tReassign.setCompleteTime(new Date());
         tReassignService.updateById(tReassign);
 
-        //修改收入明细,转给新司机(因为是先支付金额)
-        List<Income> incomes = incomeService.selectList(new EntityWrapper<Income>().eq("userType", 2).eq("objectId", oldDriver.getId()).eq("type", 2).eq("incomeId", tReassign.getOrderId()).eq("orderType", 3));
-        if(incomes.size() > 0){
-            Income income = incomes.get(0);
-            income.setObjectId(driverId);
-            incomeService.updateById(income);
+        TCompany company = iTCompanyService.selectById(driver.getCompanyId());
 
-            oldDriver.setBusinessMoney(oldDriver.getBusinessMoney() - income.getMoney());
-            oldDriver.setLaveBusinessMoney(oldDriver.getLaveBusinessMoney() - income.getMoney());
-            oldDriver.setBalance(oldDriver.getBalance().subtract(new BigDecimal(income.getMoney())));
-
-            driver.setBusinessMoney(driver.getBusinessMoney() + income.getMoney());
-            driver.setLaveBusinessMoney(driver.getLaveBusinessMoney() + income.getMoney());
-            driver.setBalance(driver.getBalance().add(new BigDecimal(income.getMoney())));
-
+        //中台修改订单状态
+        if(ToolUtil.isNotEmpty(tOrderCrossCity.getTravelId())){
+            ModifyTravelItineraryRequest request1 = new ModifyTravelItineraryRequest();
+            request1.setOrderId(tOrderCrossCity.getTravelId());
+            request1.setStatus(tOrderCrossCity.getState());
+            if (null != tOrderCrossCity.getDriverId()) {
+                request1.setDriverId(driver.getEmpId().toString());
+                request1.setSupplierShopId(company.getEnterCode());
+            }
+            if (2 == tOrderCrossCity.getPromotion()) {
+                TDriver driver2 = itDriverService.selectById(tOrderCrossCity.getPromotionDriverId());
+                request1.setPromoterId(driver2.getEmpId().toString());
+            }
+            OrderUtil.modifyTravelItinerary(request1);
         }
-        itDriverService.updateById(oldDriver);
-        itDriverService.updateById(driver);
         //增加推送
         Map<String,String> map = new HashMap<>();
         map.put("orderId", tOrderCrossCity.getId().toString());

--
Gitblit v1.7.1