大屏相关接口

master
luojian 2024-12-26 19:53:51 +08:00
parent 7ba947a94b
commit a86d5d61ac
13 changed files with 575 additions and 0 deletions

View File

@ -1,6 +1,7 @@
package com.cpxt.web.controller.biz;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletResponse;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@ -144,6 +145,16 @@ public class BizOrderController extends BaseController {
return toAjax(bizOrderService.insertBizOrder(bizOrder));
}
/**
*
*/
@Log(title = "订单", businessType = BusinessType.INSERT)
@PostMapping("/sub/add")
public AjaxResult add(@RequestBody Map map) {
bizOrderService.insertBizOrderSub(map);
return AjaxResult.success();
}
/**
*
*/

View File

@ -0,0 +1,353 @@
package com.cpxt.web.controller.biz;
import cn.hutool.core.date.DateField;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.cpxt.biz.domain.*;
import com.cpxt.biz.mapper.*;
import com.cpxt.common.annotation.Anonymous;
import com.cpxt.common.core.controller.BaseController;
import com.cpxt.common.core.domain.AjaxResult;
import com.cpxt.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
/**
* Controller
*
* @author Luo.J
* @date 2024-12-16
*/
@RestController
@RequestMapping("/biz/largeScreen")
@Anonymous
public class LargeScreenController extends BaseController {
@Autowired
private BizDriverMapper bizDriverMapper;
@Autowired
private BizOrderMapper bizOrderMapper;
@Autowired
private BizCarMapper bizCarMapper;
@Autowired
private BizCustomerMapper bizCustomerMapper;
@Autowired
private BizCustomerShopMapper bizCustomerShopMapper;
@Autowired
private BizDriverClockMapper bizDriverClockMapper;
private final String today = DateUtil.format(new Date(), "yyyy-MM-dd");
private final LargeScreenEntity largeScreenEntity = new LargeScreenEntity();
/**
*
*/
@GetMapping("/driver/overview")
public AjaxResult driverOverview()
{
long onlineDrive = getDriveCount(1);
long offlineDrive = getDriveCount(0);
double onlineRate = commonComputeRatio(onlineDrive, onlineDrive + offlineDrive);
double deliveryMileage = getDeliveryMileage();
largeScreenEntity.setOnlineDrive(onlineDrive);
largeScreenEntity.setOfflineDrive(offlineDrive);
largeScreenEntity.setOnlineRate(onlineRate);
largeScreenEntity.setDeliveryMileage(deliveryMileage);
return AjaxResult.success(largeScreenEntity);
}
/**
*
*/
@GetMapping("/order/overview")
public AjaxResult orderOverview()
{
long completedOrder = getCompletedOrder(today);
long incompleteOrder = getIncompleteOrder(today);
double completedRate = commonComputeRatio(completedOrder,completedOrder + incompleteOrder);
double incompleteRate = commonComputeRatio(incompleteOrder,completedOrder + incompleteOrder);
largeScreenEntity.setCompletedOrder(completedOrder);
largeScreenEntity.setIncompleteOrder(incompleteOrder);
largeScreenEntity.setCompletedRate(completedRate);
largeScreenEntity.setIncompleteRate(incompleteRate);
return AjaxResult.success(largeScreenEntity);
}
/**
*
*/
@GetMapping("/driver/remind")
public AjaxResult driverRemind()
{
List<BizDriverClock> bizDriverClockList = getBizDriverClockList(today);
for (BizDriverClock bizDriverClock : bizDriverClockList) {
bizDriverClock.setDriverName(bizDriverMapper.selectById(bizDriverClock.getDriverId()).getName());
}
largeScreenEntity.setBizDriverClockList(bizDriverClockList);
return AjaxResult.success(largeScreenEntity);
}
/**
*
*/
@GetMapping("/overall/overview")
public AjaxResult overallOverview()
{
long onDutyDriver = getOnDutyDriver();
long onDutyCar = getOnDutyCar();
long customer = getCustomer();
long shop = getShop();
long order = getOrder();
largeScreenEntity.setOnDutyDriver(onDutyDriver);
largeScreenEntity.setOnDutyCar(onDutyCar);
largeScreenEntity.setCustomer(customer);
largeScreenEntity.setShop(shop);
largeScreenEntity.setOrder(order);
return AjaxResult.success(largeScreenEntity);
}
/**
*
*/
@GetMapping("/customer/deliverySituation")
public AjaxResult customerDeliverySituation()
{
DateTime offset = DateUtil.offset(new Date(), DateField.DAY_OF_MONTH, -15);
Map<String,Object> result = new HashMap<>();
List<String> keys = new ArrayList<>();
List<Map<String,Long>> values = new ArrayList<>();
List<String> customerNameList = bizCustomerMapper.getCustomerName();
for (int i = 0; i <= 15; i++) {
DateTime time = DateUtil.offset(offset, DateField.DAY_OF_MONTH, i);
String thatDay = DateUtil.format(time, "yyyy-MM-dd");
String day = DateUtil.format(time, "MM-dd");
keys.add(day);
Map<String,Long> map = new HashMap<>();
for (String customerName : customerNameList) {
LambdaQueryWrapper<BizOrder> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(BizOrder::getStatus,1);
queryWrapper.ne(BizOrder::getOrderStatus,"4");
queryWrapper.eq(BizOrder::getCustomerName,customerName);
queryWrapper.like(BizOrder::getCreateTime,thatDay);
Long aLong = bizOrderMapper.selectCount(queryWrapper);
map.put(customerName,aLong);
}
values.add(map);
}
result.put("keys",keys);
result.put("values",values);
result.put("customerNameList",customerNameList);
largeScreenEntity.setCustomerDeliverySituation(result);
return AjaxResult.success(largeScreenEntity);
}
/**
* 30top5
*/
@GetMapping("/driver/deliveryOrderTop5")
public AjaxResult deliveryOrderTop5()
{
DateTime offset = DateUtil.offset(new Date(), DateField.MONTH, -1);
DateTime dateTime = DateUtil.beginOfDay(offset);
String startTime = DateUtil.format(dateTime, DateUtils.YYYY_MM_DD_HH_MM_SS);
String endTime = DateUtil.format(new Date(),DateUtils.YYYY_MM_DD_HH_MM_SS);
Map<String,Object> result = new HashMap<>();
List<String> driverNameList = bizDriverMapper.selectDriverName();
Map<String,Long> map = new HashMap<>();
for (String driverName : driverNameList) {
LambdaQueryWrapper<BizOrder> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(BizOrder::getStatus,1);
queryWrapper.ne(BizOrder::getOrderStatus,"4");
queryWrapper.and(wq -> wq.eq(BizOrder::getDriverName,driverName).or().eq(BizOrder::getCopilotName,driverName));
queryWrapper.ge(BizOrder::getUpdateTime,startTime);
queryWrapper.le(BizOrder::getUpdateTime,endTime);
Long aLong = bizOrderMapper.selectCount(queryWrapper);
map.put(driverName,aLong);
}
// 倒序
List<Map.Entry<String, Long>> entries = new ArrayList<>(map.entrySet());
entries.sort(Map.Entry.<String, Long>comparingByValue().reversed());
// 取前5个
List<Map.Entry<String, Long>> deliveryOrderTop5 = entries.stream().limit(5).collect(Collectors.toList());
// 使用Stream API提取所有的键和值
List<String> keyList = deliveryOrderTop5.stream().map(Map.Entry::getKey).collect(Collectors.toList());
List<Long> valueList = deliveryOrderTop5.stream().map(Map.Entry::getValue).collect(Collectors.toList());
result.put("keys",keyList);
result.put("values",valueList);
largeScreenEntity.setDeliveryOrderTop5(result);
return AjaxResult.success(largeScreenEntity);
}
/**
* 30top5
*/
@GetMapping("/driver/deliveryDistanceTop5")
public AjaxResult deliveryDistanceTop5()
{
DateTime offset = DateUtil.offset(new Date(), DateField.MONTH, -1);
DateTime dateTime = DateUtil.beginOfDay(offset);
String startTime = DateUtil.format(dateTime, DateUtils.YYYY_MM_DD_HH_MM_SS);
String endTime = DateUtil.format(new Date(),DateUtils.YYYY_MM_DD_HH_MM_SS);
Map<String,Object> result = new HashMap<>();
List<String> driverNameList = bizDriverMapper.selectDriverName();
Map<String,Double> map = new HashMap<>();
for (String driverName : driverNameList) {
LambdaQueryWrapper<BizOrder> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(BizOrder::getStatus,1);
queryWrapper.ne(BizOrder::getOrderStatus,"3");
queryWrapper.and(wq -> wq.eq(BizOrder::getDriverName,driverName).or().eq(BizOrder::getCopilotName,driverName));
queryWrapper.ge(BizOrder::getUpdateTime,startTime);
queryWrapper.le(BizOrder::getUpdateTime,endTime);
Double distance = bizOrderMapper.selectSumDistance(queryWrapper);
if (distance == null){
map.put(driverName, (double) 0);
}else {
map.put(driverName,distance);
}
}
// 倒序
List<Map.Entry<String, Double>> entries = new ArrayList<>(map.entrySet());
entries.sort(Map.Entry.<String, Double>comparingByValue().reversed());
// 取前5个
List<Map.Entry<String, Double>> deliveryDistanceTop5 = entries.stream().limit(5).collect(Collectors.toList());
// 使用Stream API提取所有的键和值
List<String> keyList = deliveryDistanceTop5.stream().map(Map.Entry::getKey).collect(Collectors.toList());
List<Double> valueList = deliveryDistanceTop5.stream().map(Map.Entry::getValue).collect(Collectors.toList());
result.put("keys",keyList);
result.put("values",valueList);
largeScreenEntity.setDeliveryDistanceTop5(result);
return AjaxResult.success(largeScreenEntity);
}
/**
*
*/
@GetMapping("/area/overview")
public AjaxResult areaOverview()
{
Map<String,Object> result = new HashMap<>();
List<String> keyList = bizOrderMapper.selectAreaNameOverview();
List<Long> valueList = bizOrderMapper.selectAreaCountOverview();
result.put("keys",keyList);
result.put("values",valueList);
largeScreenEntity.setAreaOverview(result);
return AjaxResult.success(largeScreenEntity);
}
private long getOrder() {
LambdaQueryWrapper<BizOrder> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.ne(BizOrder::getOrderStatus,"4");
queryWrapper.eq(BizOrder::getStatus,1);
return bizOrderMapper.selectCount(queryWrapper);
}
private long getShop() {
LambdaQueryWrapper<BizCustomerShop> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(BizCustomerShop::getStatus,1);
return bizCustomerShopMapper.selectCount(queryWrapper);
}
private long getCustomer() {
LambdaQueryWrapper<BizCustomer> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(BizCustomer::getStatus,1);
return bizCustomerMapper.selectCount(queryWrapper);
}
private long getOnDutyCar() {
LambdaQueryWrapper<BizCar> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(BizCar::getStatus,1);
return bizCarMapper.selectCount(queryWrapper);
}
private long getOnDutyDriver() {
LambdaQueryWrapper<BizDriver> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(BizDriver::getStatus,1);
return bizDriverMapper.selectCount(queryWrapper);
}
private List<BizDriverClock> getBizDriverClockList(String today) {
LambdaQueryWrapper<BizDriverClock> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.like(BizDriverClock::getClockTime,today);
queryWrapper.eq(BizDriverClock::getStatus,1);
return bizDriverClockMapper.selectList(queryWrapper);
}
private long getIncompleteOrder(String today) {
LambdaQueryWrapper<BizOrder> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.like(BizOrder::getUpdateTime, today);
queryWrapper.in(BizOrder::getOrderStatus,"1","2");
queryWrapper.eq(BizOrder::getStatus,1);
return bizOrderMapper.selectCount(queryWrapper);
}
private long getCompletedOrder(String today) {
LambdaQueryWrapper<BizOrder> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.like(BizOrder::getUpdateTime,today);
queryWrapper.eq(BizOrder::getOrderStatus,"3");
queryWrapper.eq(BizOrder::getStatus,1);
return bizOrderMapper.selectCount(queryWrapper);
}
private double getDeliveryMileage() {
LambdaQueryWrapper<BizOrder> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(BizOrder::getOrderStatus,"3");
queryWrapper.eq(BizOrder::getStatus,1);
List<BizOrder> bizOrders = bizOrderMapper.selectList(queryWrapper);
double deliveryMileage = 0;
for (BizOrder bizOrder : bizOrders) {
if (ObjectUtil.isNotEmpty(bizOrder.getLineDistance())) deliveryMileage += bizOrder.getLineDistance();
}
return deliveryMileage;
}
private long getDriveCount(Integer onlineStatus) {
LambdaQueryWrapper<BizDriver> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(BizDriver::getOnlineStatus,onlineStatus);
queryWrapper.eq(BizDriver::getStatus,1);
return bizDriverMapper.selectCount(queryWrapper);
}
/**
* -
* @param divisor
* @param dividend
* @return
*/
private double commonComputeRatio(long divisor, long dividend) {
double ratio = 0d;
if (divisor == 0) return ratio;
if (dividend !=0 ){
// 比率 = 某条件下的项目数 / 总项目数
ratio = (double) divisor / dividend * 100;
ratio = this.keepTwoDecimals(ratio);//保留两位小数
}
return ratio;
}
/**
* -
*/
private double keepTwoDecimals(double nums){
if (nums != 0){
return new BigDecimal(nums).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();//保留两位小数
}
return 0d;
}
}

View File

@ -44,6 +44,10 @@ public class BizCustomerShop
@Excel(name = "联系电话")
private String linkphone;
/** 所属地区 */
@Excel(name = "所属地区")
private String area;
/** 店铺地址 */
@Excel(name = "店铺地址")
private String address;

View File

@ -44,6 +44,10 @@ public class BizCustomerWarehouse
@Excel(name = "联系电话")
private String linkphone;
/** 所属地区 */
@Excel(name = "所属地区")
private String area;
/** 仓库地址 */
@Excel(name = "仓库地址")
private String address;

View File

@ -1,6 +1,8 @@
package com.cpxt.biz.domain;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
@ -26,6 +28,9 @@ public class BizDriverClock
@Excel(name = "司机ID")
private Long driverId;
@TableField(exist = false)
private String driverName;
/** 打卡类型 上班 下班 */
@Excel(name = "打卡类型 上班 下班")
private Integer clockType;

View File

@ -103,6 +103,10 @@ public class BizOrder
@Excel(name = "发件人电话")
private String senderPhone;
/** 发件人所属地区 */
@Excel(name = "发件人所属地区")
private String senderArea;
/** 发件人地址 */
@Excel(name = "发件人地址")
private String senderAddress;
@ -131,6 +135,10 @@ public class BizOrder
@Excel(name = "收件人电话")
private String receiverPhone;
/** 收件人所属地区 */
@Excel(name = "收件人所属地区")
private String receiverArea;
/** 收件人地址 */
@Excel(name = "收件人地址")
private String receiverAddress;
@ -259,6 +267,10 @@ public class BizOrder
@Excel(name = "到达纬度")
private BigDecimal arriveLat;
/** 运单状态 */
@Excel(name = "运单状态")
private Integer subStatus;
/** 创建时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "创建时间")

View File

@ -50,4 +50,20 @@ public class BizOrderSub
@Excel(name = "高", readConverterExp = "米=")
private BigDecimal height;
/** 物品类型 */
@Excel(name = "物品类型")
private String goodsType;
/** 物品名称 */
@Excel(name = "物品名称")
private String goodsName;
/** 订单费用 */
@Excel(name = "订单费用")
private BigDecimal orderFee;
/** 备注 */
@Excel(name = "备注")
private String remark;
}

View File

@ -0,0 +1,97 @@
package com.cpxt.biz.domain;
import lombok.Data;
import java.util.List;
import java.util.Map;
/**
* biz_customer
*
* @author YIN
* @date 2024-12-16
*/
@Data
public class LargeScreenEntity
{
private static final long serialVersionUID = 1L;
/**
*
*/
// 今日在线司机
private long onlineDrive;
// 今日离线司机
private long offlineDrive;
// 今日在线率
private double onlineRate;
// 今日配送里程
private double deliveryMileage;
/**
*
*/
// 今日已完成订单
private long completedOrder;
// 今日未完成订单
private long incompleteOrder;
// 今日订单完成率
private double completedRate;
// 今日订单未完成率
private double incompleteRate;
/**
*
*/
// 今日上下班打卡记录
List<BizDriverClock> bizDriverClockList;
/**
*
*/
// 在岗司机
private long onDutyDriver;
// 在岗车辆
private long onDutyCar;
// 合作伙伴
private long customer;
// 配送门店
private long shop;
// 配送订单
private long order;
/**
*
*/
private Map<String,Object> customerDeliverySituation;
/**
* 30top5
*/
private Map<String,Object> deliveryOrderTop5;
/**
* 30top5
*/
private Map<String,Object> deliveryDistanceTop5;
/**
*
*/
private Map<String,Object> areaOverview;
}

View File

@ -21,5 +21,8 @@ public interface BizCustomerMapper extends BaseMapper<BizCustomer>
@Select("select * from biz_customer where name = #{customerName} and status = 1")
BizCustomer selectByName(String customerName);
@Select("select name from biz_customer where status = 1")
List<String> getCustomerName();
}

View File

@ -19,4 +19,6 @@ public interface BizDriverMapper extends BaseMapper<BizDriver>
@Select("select * from biz_driver where user_id = ${userId} and status = 1")
BizDriver selectByUserId(Long userId);
@Select("select name from biz_driver where status = 1")
List<String> selectDriverName();
}

View File

@ -1,10 +1,13 @@
package com.cpxt.biz.mapper;
import java.util.List;
import java.util.Map;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.cpxt.biz.domain.BizOrder;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
/**
@ -18,4 +21,19 @@ public interface BizOrderMapper extends BaseMapper<BizOrder>
{
@Select("select * from biz_order order by id desc limit 1")
BizOrder selectLastestOrder();
@Select("select SUM(line_distance) as distance from biz_order ${ew.customSqlSegment}")
Double selectSumDistance(@Param("ew") LambdaQueryWrapper<BizOrder> queryWrapper);
@Select("SELECT receiver_area as area,COUNT(receiver_area) as count FROM biz_order WHERE order_status != '4' GROUP BY receiver_area")
List<Map<String, Long>> selectAreaOverview();
@Select("SELECT t.area from (SELECT receiver_area as area,COUNT(receiver_area) as count FROM biz_order WHERE order_status != '4' GROUP BY receiver_area) t")
List<String> selectAreaNameOverview();
@Select("SELECT t.count from (SELECT receiver_area as area,COUNT(receiver_area) as count FROM biz_order WHERE order_status != '4' GROUP BY receiver_area) t")
List<Long> selectAreaCountOverview();
@Select("select * from biz_order where order_sn = #{orderSn} and status = 1")
BizOrder selectByOrderSn(String orderSn);
}

View File

@ -1,6 +1,7 @@
package com.cpxt.biz.service;
import java.util.List;
import java.util.Map;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.cpxt.biz.domain.BizOrder;
@ -70,4 +71,6 @@ public interface IBizOrderService
String importOrderCustomer(List<BizOrderVoCustomer> orderList, boolean updateSupport);
Page<BizOrder> selectBizOrderPageByDriver(String orderStatus,int pageNum, int pageSize);
public void insertBizOrderSub(Map map);
}

View File

@ -3,6 +3,7 @@ package com.cpxt.biz.service.impl;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
@ -23,6 +24,7 @@ import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.cpxt.biz.service.IBizOrderService;
import org.springframework.transaction.annotation.Transactional;
import javax.validation.Validator;
@ -43,6 +45,9 @@ public class BizOrderServiceImpl implements IBizOrderService {
@Autowired
private BizOrderMapper bizOrderMapper;
@Autowired
private BizOrderSubMapper bizOrderSubMapper;
@Autowired
private BizCustomerMapper bizCustomerMapper;
@ -310,6 +315,12 @@ public class BizOrderServiceImpl implements IBizOrderService {
Long carId = bizOrder.getCarId(); // 配送车辆id
Long driverId = bizOrder.getDriverId(); // 配送司机id
Long copilotId = bizOrder.getCopilotId(); // 副驾司机id
BigDecimal length = bizOrder.getLength();
BigDecimal width = bizOrder.getWidth();
BigDecimal height = bizOrder.getHeight();
if (ObjectUtil.isNotEmpty(length) && ObjectUtil.isNotEmpty(width) && ObjectUtil.isNotEmpty(height)){
bizOrder.setVolume(length.multiply(width).multiply(height));
}
setBizOrderSn(bizOrder); // 填充订单编号
@ -330,6 +341,42 @@ public class BizOrderServiceImpl implements IBizOrderService {
return bizOrderMapper.insert(bizOrder);
}
/**
*
*
* @param map
* @return
*/
@Override
@Transactional
public void insertBizOrderSub(Map map) {
String orderSn = (String) map.get("orderSn");
List<Map> subList = (List<Map>) map.get("subList");
for (Map map1 : subList) {
if (map1.get("orderSn").equals(orderSn)){
BizOrderSub bizOrderSub = new BizOrderSub();
bizOrderSub.setOrderSn(orderSn);
bizOrderSub.setSubOrderSn((String) map.get("subOrderSn"));
bizOrderSub.setWeight((BigDecimal) map.get("weight"));
bizOrderSub.setLength((BigDecimal) map.get("length"));
bizOrderSub.setWidth((BigDecimal) map.get("width"));
bizOrderSub.setHeight((BigDecimal) map.get("height"));
if (ObjectUtil.isNotEmpty(map.get("length")) && ObjectUtil.isNotEmpty(map.get("width")) && ObjectUtil.isNotEmpty(map.get("height"))){
bizOrderSub.setVolume(((BigDecimal) map.get("length")).multiply((BigDecimal) map.get("width")).multiply((BigDecimal) map.get("height")));
}
bizOrderSub.setGoodsType((String) map.get("goodsType"));
bizOrderSub.setGoodsName((String) map.get("goodsName"));
bizOrderSub.setOrderFee((BigDecimal) map.get("orderFee"));
bizOrderSub.setRemark((String) map.get("remark"));
bizOrderSubMapper.insert(bizOrderSub);
// 同步更新订单表的运单状态
BizOrder bizOrder = bizOrderMapper.selectByOrderSn(orderSn);
bizOrder.setSubStatus(1);
bizOrderMapper.updateById(bizOrder);
}
}
}
/**
*
*