From 73b750200f25df08aa64124da49e7461f9de6653 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期五, 13 十二月 2024 15:09:49 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/NTTravel

---
 ManagementNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TReassignController.java |  256 +++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 247 insertions(+), 9 deletions(-)

diff --git a/ManagementNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TReassignController.java b/ManagementNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TReassignController.java
index 70320cb..61df75f 100644
--- a/ManagementNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TReassignController.java
+++ b/ManagementNTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TReassignController.java
@@ -45,6 +45,8 @@
 
     @Autowired
     private ITOrderPrivateCarService itOrderPrivateCarService;
+    @Autowired
+    private ITOrderTransferService orderTransferService;
 
     @Autowired
     private ITOrderCrossCityService itOrderCrossCityService;
@@ -109,6 +111,13 @@
         return PREFIX + "smallPieceLogistics.html";
     }
 
+    /**
+     * 跳转到接送机改派管理首页
+     */
+    @RequestMapping("/transfer")
+    public String transfer() {
+        return PREFIX + "transfer.html";
+    }
 
     /**
      * 跳转到添加专车改派管理
@@ -154,6 +163,15 @@
     public String tReassign_reassignmentSmall(@PathVariable Integer tReassignId, Model model) {
         model.addAttribute("tReassignId",tReassignId);
         return PREFIX + "tReassign_reassignmentSmall.html";
+    }
+
+    /**
+     * 跳转到修改专车改派管理
+     */
+    @RequestMapping("/tReassign_reassignmentTransfer/{transferId}")
+    public String tReassign_reassignmentTransfer(@PathVariable Integer transferId, Model model) {
+        model.addAttribute("transferId",transferId);
+        return PREFIX + "tReassign_reassignmentTransfer.html";
     }
 
     /**
@@ -232,6 +250,31 @@
         return super.packForBT(page);
     }
 
+    /**
+     * 获取专车改派管理列表
+     */
+    @RequestMapping(value = "/listTransfer")
+    @ResponseBody
+    public Object listTransfer(String insertTime,
+                       String originalDriverName,
+                       String originalDriverPhone,
+                       String orderNum,
+                       String nowDriverName,
+                       String nowDriverPhone,
+                       Integer orderState,
+                       Integer state) {
+        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 PageFactory<Map<String, Object>>().defaultPage();
+        page.setRecords(tReassignService.getTransferOrderList(page,ShiroKit.getUser().getRoleType(),ShiroKit.getUser().getObjectId(),beginTime,endTime,originalDriverName,originalDriverPhone,orderNum,nowDriverName,nowDriverPhone,orderState,state));
+        return super.packForBT(page);
+    }
+
 
     /**
      * 选择司机列表
@@ -278,6 +321,21 @@
         TOrderLogistics tOrderLogistics = orderLogisticsService.selectById(reassign.getOrderId());
         Page<Map<String, Object>> page = new PageFactory<Map<String, Object>>().defaultPage();
         page.setRecords(tReassignService.getCanSelectSmallDriverList(page,tOrderLogistics.getCompanyId(), tOrderLogistics.getType(),name,phone));
+        return super.packForBT(page);
+    }
+
+    /**
+     * 选择司机列表
+     */
+    @RequestMapping(value = "/selectTransferDriver/{orderId}")
+    @ResponseBody
+    public Object selectTransferDriver(@PathVariable Integer orderId,
+                               String name,
+                               String phone) {
+        TReassign reassign = tReassignService.selectById(orderId);
+        TOrderTransfer orderTransfer = orderTransferService.selectById(reassign.getOrderId());
+        Page<Map<String, Object>> page = new PageFactory<Map<String, Object>>().defaultPage();
+        page.setRecords(tReassignService.getCanSelectTransferDriverList(page,orderTransfer.getCompanyId(),orderTransfer.getType(),name,phone));
         return super.packForBT(page);
     }
 
@@ -349,7 +407,7 @@
                     tReassign.setReviewerType(2);
                     tReassignService.updateById(tReassign);
                     //添加交易明细
-                    transactionDetailsService.saveData(tReassign.getOriginalDriverId(), "直通车改派拒绝退款", money, 1, 1, 2, 1, tReassign.getOrderId());
+                    transactionDetailsService.saveData(tReassign.getOriginalDriverId(), "跨城改派拒绝退款", money, 1, 1, 2, 1, tReassign.getOrderId());
                 }
                 if(tReassign.getPayType() == 2){//支付宝
                     Map<String, String> map = payMoneyUtil.aliRefund(tReassign.getPayOrder(), money.toString());
@@ -358,7 +416,7 @@
                         tReassign.setReviewerType(2);
                         tReassignService.updateById(tReassign);
                         //添加交易明细
-                        transactionDetailsService.saveData(tReassign.getOriginalDriverId(), "直通车改派拒绝退款", money, 1, 1, 2, 1, tReassign.getOrderId());
+                        transactionDetailsService.saveData(tReassign.getOriginalDriverId(), "跨城改派拒绝退款", money, 1, 1, 2, 1, tReassign.getOrderId());
                     }
                     if(null == map || !"10000".equals(map.get("code"))){
                         System.err.println(map.get("msg"));
@@ -469,7 +527,7 @@
                 map.put("id", orderCrossCity.getId().toString());
                 map.put("orderType", "3");
                 String result = HttpRequestUtil.postRequest(PushURL.cancel_order_url, map);
-                System.out.println("直通车取消:【orderId="+orderCrossCity.getId().toString()+"】,调用接口:"+result);
+                System.out.println("跨城取消:【orderId="+orderCrossCity.getId().toString()+"】,调用接口:"+result);
 
 
                 //已支付的情况下进行退款操作
@@ -479,7 +537,7 @@
                         tUser.setBalance(tUser.getBalance().add(orderCrossCity.getPayMoney()));
                         userService.updateById(tUser);
                         //添加交易明细
-                        transactionDetailsService.saveData(orderCrossCity.getUserId(), "直通车改派取消退款", orderCrossCity.getPayMoney().doubleValue(), 1, 1, 1, 3, tReassign.getOrderId());
+                        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){
@@ -492,14 +550,14 @@
                                 return ResultUtil.error(map1.get("return_msg"));
                             }
                             //添加交易明细
-                            transactionDetailsService.saveData(query.getUserId(), "直通车改派取消退款", query.getAmount(), 1, 1, query.getType(), 3, orderCrossCity.getId());
+                            transactionDetailsService.saveData(query.getUserId(), "跨城改派取消退款", query.getAmount(), 1, 1, query.getType(), 3, orderCrossCity.getId());
                         }else{//支付宝
                             Map<String, String> map1 = payMoneyUtil.aliRefund(query.getCode(), query.getAmount().toString());
                             if(!"10000".equals(map1.get("code"))){
                                 return ResultUtil.error(map1.get("msg"));
                             }
                             //添加交易明细
-                            transactionDetailsService.saveData(query.getUserId(), "直通车改派取消退款", query.getAmount(), 1, 1, query.getType(), 3, orderCrossCity.getId());
+                            transactionDetailsService.saveData(query.getUserId(), "跨城改派取消退款", query.getAmount(), 1, 1, query.getType(), 3, orderCrossCity.getId());
                         }
                     }
 
@@ -548,7 +606,7 @@
                     tReassign.setReviewerType(2);
                     tReassignService.updateById(tReassign);
                     //添加交易明细
-                    transactionDetailsService.saveData(tReassign.getOriginalDriverId(), "直通车改派拒绝退款", money, 1, 1, 2, 3, tReassign.getOrderId());
+                    transactionDetailsService.saveData(tReassign.getOriginalDriverId(), "跨城改派拒绝退款", money, 1, 1, 2, 3, tReassign.getOrderId());
                 }
                 if(tReassign.getPayType() == 2){//支付宝
                     Map<String, String> map = payMoneyUtil.aliRefund(tReassign.getPayOrder(), money.toString());
@@ -557,7 +615,7 @@
                         tReassign.setReviewerType(2);
                         tReassignService.updateById(tReassign);
                         //添加交易明细
-                        transactionDetailsService.saveData(tReassign.getOriginalDriverId(), "直通车改派拒绝退款", money, 1, 1, 2, 3, tReassign.getOrderId());
+                        transactionDetailsService.saveData(tReassign.getOriginalDriverId(), "跨城改派拒绝退款", money, 1, 1, 2, 3, tReassign.getOrderId());
                     }
                     if(null == map || !"10000".equals(map.get("code"))){
                         System.err.println(map.get("msg"));
@@ -715,6 +773,125 @@
         return SUCCESS_TIP;
     }
 
+    /**
+     * 操作专车改派管理
+     * optType 1=拒绝 2=取消
+     */
+    @RequestMapping(value = "/optTransfer")
+    @ResponseBody
+    public Object optTransfer(@RequestParam Integer transferId,@RequestParam Integer optType) {
+        try {
+            ShiroUser user = ShiroKit.getUser();
+            TReassign tReassign = tReassignService.selectById(transferId);
+            Integer state = tReassign.getState();
+            if(state == 3){//已改派
+                return "不能重复操作";
+            }
+            if(state == 4){//已改派
+                return "不能重复操作";
+            }
+            if(state == 5){//已改派
+                return "不能重复操作";
+            }
+            if (1 == optType){
+                tReassign.setState(5);
+                tReassignService.updateById(tReassign);
+
+                //还原订单状态
+                TOrderTransfer orderTransfer = orderTransferService.selectById(tReassign.getOrderId());
+                orderTransfer.setState(orderTransfer.getOldState());
+                orderTransferService.updateById(orderTransfer);
+            }else if (2 == optType){
+                tReassign.setState(4);
+                tReassignService.updateById(tReassign);
+
+                //修改订单状态"已取消"
+                TOrderTransfer orderTransfer = orderTransferService.selectById(tReassign.getOrderId());
+                orderTransfer.setState(10);
+                orderTransferService.updateById(orderTransfer);
+
+                //修改司机状态"空闲"
+                TDriver driver = itDriverService.selectById(tReassign.getOriginalDriverId());
+                driver.setState(2);
+                itDriverService.updateById(driver);
+
+                //添加取消记录
+                OrderCancel orderCancel = new OrderCancel();
+                orderCancel.setOrderId(tReassign.getOrderId());
+                orderCancel.setOrderType(tReassign.getOrderType());
+                orderCancel.setReason("调度端取消订单");
+                orderCancel.setRemark("调度“" + user.getName() + "-" + user.getId() + "”执行取消操作");
+                orderCancel.setState(2);
+                orderCancel.setInsertTime(new Date());
+                orderCancel.setUserType(3);
+                orderCancel.setUserId(user.getId());
+                orderCancelMapper.insert(orderCancel);
+
+                //调用推送
+                Map<String,String> map = new HashMap<>();
+                map.put("id", orderTransfer.getId().toString());
+                map.put("orderType", "7");
+                String result = HttpRequestUtil.postRequest(PushURL.cancel_order_url, map);
+                System.out.println("接送机取消:【orderId="+orderTransfer.getId().toString()+"】,调用接口:"+result);
+            }
+
+            if(state == 2){//退款操作
+                SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+                String out_refund_no = sdf.format(new Date()) + "_" + tReassign.getId();
+                Double money = tReassign.getMoney();
+                if(tReassign.getPayType() == 1){//微信
+                    Map<String, String> map = payMoneyUtil.wxRefund(tReassign.getPayOrder(), out_refund_no, money.toString(), money.toString(), "/dispatch/base/order/reassignRefundCallback");
+                    if(null == map || !"SUCCESS".equals(map.get("return_code"))){
+                        System.err.println(map.get("return_msg"));
+                        return ResultUtil.error(map.get("return_msg"));
+                    }
+                    tReassign.setReviewer(ShiroKit.getUser().getId());
+                    tReassign.setReviewerType(2);
+                    tReassignService.updateById(tReassign);
+                    //添加交易明细
+                    transactionDetailsService.saveData(tReassign.getOriginalDriverId(), "接送机改派拒绝退款", money, 1, 1, 2, 7, tReassign.getOrderId());
+                }
+                if(tReassign.getPayType() == 2){//支付宝
+                    Map<String, String> map = payMoneyUtil.aliRefund(tReassign.getPayOrder(), money.toString());
+                    if(null != map && "10000".equals(map.get("code"))){
+                        tReassign.setReviewer(ShiroKit.getUser().getId());
+                        tReassign.setReviewerType(2);
+                        tReassignService.updateById(tReassign);
+                        //添加交易明细
+                        transactionDetailsService.saveData(tReassign.getOriginalDriverId(), "接送机改派拒绝退款", money, 1, 1, 2, 7, tReassign.getOrderId());
+                    }
+                    if(null == map || !"10000".equals(map.get("code"))){
+                        System.err.println(map.get("msg"));
+                        return ResultUtil.error(map.get("msg"));
+                    }
+                }
+                if(tReassign.getPayType() == 3){//余额
+                    TDriver tDriver = itDriverService.selectById(tReassign.getOriginalDriverId());
+                    tDriver.setBalance(tDriver.getBalance().add(new BigDecimal(money)));
+                    tDriver.setLaveBusinessMoney(tDriver.getLaveBusinessMoney() + money);
+                    itDriverService.updateById(tDriver);
+                }
+            }
+
+
+            //增加交易明细
+            TPubTransactionDetails details = new TPubTransactionDetails();
+            details.setUserId(tReassign.getOriginalDriverId());
+            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);
+            return SUCCESS_TIP;
+        }catch (Exception e){
+            e.printStackTrace();
+            return "ERROR";
+        }
+    }
 
     /**
      * 专车订单改派司机
@@ -868,7 +1045,7 @@
         map.put("orderId", tOrderCrossCity.getId().toString());
         map.put("orderType", "3");
         String result = HttpRequestUtil.postRequest(PushURL.order_push_url, map);
-        System.out.println("直通车改派:【orderId="+tOrderCrossCity.getId().toString()+"】,调用接口:"+result);
+        System.out.println("跨城改派:【orderId="+tOrderCrossCity.getId().toString()+"】,调用接口:"+result);
         return SUCCESS_TIP;
     }
 
@@ -922,4 +1099,65 @@
         System.out.println("小件物流改派:【orderId="+tOrderLogistics.getId().toString()+"】,调用接口:"+result);
         return SUCCESS_TIP;
     }
+
+    /**
+     * 接送机订单改派司机
+     */
+    @RequestMapping(value = "/selectTransferDriver")
+    @ResponseBody
+    public Object selectTransferDriver(@RequestParam Integer orderId,@RequestParam Integer driverId) {
+        //修改订单
+        TReassign tReassign = tReassignService.selectById(orderId);
+        TOrderTransfer orderTransfer = orderTransferService.selectById(tReassign.getOrderId());
+
+        //修改之前司机状态 -- 空闲
+        TDriver oldDriver = itDriverService.selectById(tReassign.getOriginalDriverId());
+        oldDriver.setState(2);
+        itDriverService.updateById(oldDriver);
+
+        //查找司机对象
+        TDriver nowDriver = itDriverService.selectById(driverId);
+        nowDriver.setState(3);
+        itDriverService.updateById(nowDriver);
+
+        //修改专车订单
+        orderTransfer.setState(orderTransfer.getOldState());
+        orderTransfer.setDriverId(driverId);
+        orderTransfer.setCarId(nowDriver.getCarId());
+        orderTransferService.updateById(orderTransfer);
+
+        //修改专车改派订单
+        tReassign.setNowDriverId(driverId);
+        tReassign.setNowCarId(nowDriver.getCarId());
+        tReassign.setState(3);
+        tReassign.setCompleteTime(new Date());
+        tReassignService.updateById(tReassign);
+
+        List<Income> incomes = incomeService.selectList(new EntityWrapper<Income>().eq("userType", 2).eq("type", 2).eq("incomeId", orderTransfer.getId()).eq("orderType", orderTransfer.getType()));
+        for(Income income : incomes){
+            income.setObjectId(driverId);
+            incomeService.updateById(income);
+
+            TDriver driver = itDriverService.selectById(tReassign.getOriginalDriverId());
+            driver.setBalance(driver.getBalance().subtract(new BigDecimal(income.getMoney())));
+            driver.setBusinessMoney(driver.getBusinessMoney() - income.getMoney());
+            driver.setLaveBusinessMoney(driver.getLaveBusinessMoney() - income.getMoney());
+            itDriverService.updateById(driver);
+
+            driver = itDriverService.selectById(driverId);
+            driver.setBalance(driver.getBalance().add(new BigDecimal(income.getMoney())));
+            driver.setBusinessMoney(driver.getBusinessMoney() + income.getMoney());
+            driver.setLaveBusinessMoney(driver.getLaveBusinessMoney() + income.getMoney());
+            itDriverService.updateById(driver);
+        }
+
+        //增加推送
+        Map<String,String> map = new HashMap<>();
+        map.put("orderId", orderTransfer.getId().toString());
+        map.put("orderType", "7");
+        String result = HttpRequestUtil.postRequest(PushURL.order_push_url, map);
+        System.out.println("接送机改派:【orderId="+orderTransfer.getId().toString()+"】,调用接口:"+result);
+        return SUCCESS_TIP;
+    }
+
 }

--
Gitblit v1.7.1