| | |
| | | |
| | | @Autowired |
| | | private ITOrderPrivateCarService itOrderPrivateCarService; |
| | | @Autowired |
| | | private ITOrderTransferService orderTransferService; |
| | | |
| | | @Autowired |
| | | private ITOrderCrossCityService itOrderCrossCityService; |
| | |
| | | return PREFIX + "smallPieceLogistics.html"; |
| | | } |
| | | |
| | | /** |
| | | * 跳转到接送机改派管理首页 |
| | | */ |
| | | @RequestMapping("/transfer") |
| | | public String transfer() { |
| | | return PREFIX + "transfer.html"; |
| | | } |
| | | |
| | | /** |
| | | * 跳转到添加专车改派管理 |
| | |
| | | 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"; |
| | | } |
| | | |
| | | /** |
| | |
| | | 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); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 选择司机列表 |
| | |
| | | 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); |
| | | } |
| | | |
| | |
| | | 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()); |
| | |
| | | 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")); |
| | |
| | | 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); |
| | | |
| | | |
| | | //已支付的情况下进行退款操作 |
| | |
| | | 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){ |
| | |
| | | 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()); |
| | | } |
| | | } |
| | | |
| | |
| | | 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()); |
| | |
| | | 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")); |
| | |
| | | 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"; |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 专车订单改派司机 |
| | |
| | | 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; |
| | | } |
| | | |
| | |
| | | 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; |
| | | } |
| | | |
| | | } |