|
|
|
@ -103,56 +103,70 @@ public class AsyncTaskService {
|
|
|
|
|
.setWorkQueue(new LinkedBlockingQueue<>(100))
|
|
|
|
|
.build();
|
|
|
|
|
|
|
|
|
|
// @Async(value = "asyncTaskExecutor")
|
|
|
|
|
public void completeUnReportOrderOld(EquipmentChargeOrderDO hangUpOrderList) {
|
|
|
|
|
try {
|
|
|
|
|
EquipmentOrder equipmentOrder = equipmentOrderDao.findOne(hangUpOrderList.getOrderNo());//查询订单下发结束命令前的最新一笔订单信息
|
|
|
|
|
if (equipmentOrder == null) {
|
|
|
|
|
log.info("completeUnReportOrder补单,订单号:{},mongo未查询到信息", hangUpOrderList.getOrderNo());
|
|
|
|
|
equipmentChargeOrderDOMapper.setPatchStateByOrderNo(hangUpOrderList.getOrderNo());
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
if (!"0".equals(hangUpOrderList.getPayStatus().toString())) {
|
|
|
|
|
log.info("completeUnReportOrder补单,订单号:{},已经支付", hangUpOrderList.getOrderNo());
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
log.info("订单号{},补单开始", hangUpOrderList.getOrderNo());
|
|
|
|
|
EquipmentChargeOrderDO lastOrderInfo = beforeStopLastOrderInfo(equipmentOrder, hangUpOrderList);
|
|
|
|
|
addSettle(lastOrderInfo, equipmentOrder, equipmentOrder.getEquipmentSn()); //补单
|
|
|
|
|
log.info("订单号{},补单结束", hangUpOrderList.getOrderNo());
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
log.error("订单号" + hangUpOrderList.getOrderNo() + ",补单异常,异常信息:", e);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 功能:处理正向补单
|
|
|
|
|
*
|
|
|
|
|
* @param hangUpOrderList
|
|
|
|
|
*/
|
|
|
|
|
@Async(value = "asyncTaskExecutor")
|
|
|
|
|
public void completeUnReportOrder(EquipmentChargeOrderDO hangUpOrderList) {
|
|
|
|
|
//EquipmentChargeOrderDO :订单表 t_equipment_charge_order
|
|
|
|
|
// hangUpOrderList :似乎是挂起的订单列表,为什么是列表呢?不是一条记录,一个订单吗?
|
|
|
|
|
try {
|
|
|
|
|
//通过t_equipment_charge_order表中,查找order_no=2020092315154430479
|
|
|
|
|
//在后到MongoDb中去查找订单信息
|
|
|
|
|
EquipmentOrder equipmentOrder = equipmentOrderDao.findOne(hangUpOrderList.getOrderNo());//查询订单下发结束命令前的最新一笔订单信息
|
|
|
|
|
if (equipmentOrder == null) {
|
|
|
|
|
log.info("completeUnReportOrder补单失败,订单号:{},mongo未查询到信息", hangUpOrderList.getOrderNo());
|
|
|
|
|
//把mongo无记录的订单的状态置为需要手动补单的订单
|
|
|
|
|
//mysql数据表t_equipment_charge_order修改
|
|
|
|
|
/**
|
|
|
|
|
-- 订单状态 0 创建中 1准备充电中 2 充电中 3完成 4 取消 5挂起 6需要手动补单 7结算中
|
|
|
|
|
UPDATE t_equipment_charge_order SET state = 6 WHERE order_no = #{orderNo}
|
|
|
|
|
*/
|
|
|
|
|
equipmentChargeOrderDOMapper.setPatchStateByOrderNo(hangUpOrderList.getOrderNo());
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
挂起的订单处于已支付状态,无需再处理
|
|
|
|
|
t_equipment_charge_order
|
|
|
|
|
pay_status 支付状态 0未支付 1待支付 2已支付 3支付失败
|
|
|
|
|
*/
|
|
|
|
|
if ("2".equals(hangUpOrderList.getPayStatus().toString())) {
|
|
|
|
|
log.info("completeUnReportOrder补单失败,订单号:{},已经支付", hangUpOrderList.getOrderNo());
|
|
|
|
|
//记录日志 : t_equipment_charge_order_track
|
|
|
|
|
//order_no:订单号
|
|
|
|
|
//user_id:用户ID
|
|
|
|
|
//connector_sn:枪号
|
|
|
|
|
//state:状态 0创建中 1启动中 2充电中 3充电完成 4充电异常 5订单挂起 7结算中 101扫码启动(设备认证) 102用户启动充电 103用户主动停止
|
|
|
|
|
//succ_stat 操作结果 0 成功 1失败
|
|
|
|
|
addOrderTrack(hangUpOrderList.getOrderNo(), hangUpOrderList.getUserId(), hangUpOrderList.getConnectorId().toString(), (byte) 3, (byte) 0, "补单失败,订单已经支付,无法进行二次结算");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//查询流水,若是已有流水,则不进行二次结算
|
|
|
|
|
// t_equipment_charge_order
|
|
|
|
|
// select count(*) from t_account_water where order_id = #{orderNo} and type = 1
|
|
|
|
|
// type=1 类型 0充值 1充电扣款 2充值赠送 3后台充值 4退款 5后台转出 6后台转入 7账户清零 8用户申请退款 9退款驳回
|
|
|
|
|
// 查询流水,若是已有流水,则不进行二次结算
|
|
|
|
|
Integer count = equipmentChargeOrderDOMapper.getWaterCountByOrderNo(hangUpOrderList.getOrderNo());
|
|
|
|
|
if(count > 0) {
|
|
|
|
|
if (count > 0) {
|
|
|
|
|
log.info("completeUnReportOrder补单失败,订单号:{},订单已有流水,无法进行二次结算", hangUpOrderList.getOrderNo());
|
|
|
|
|
//记录日志
|
|
|
|
|
addOrderTrack(hangUpOrderList.getOrderNo(), hangUpOrderList.getUserId(), hangUpOrderList.getConnectorId().toString(), (byte) 3, (byte) 0, "补单失败,订单已有流水,无法进行二次结算");
|
|
|
|
|
return ;
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
log.info("订单号{},补单开始", hangUpOrderList.getOrderNo());
|
|
|
|
|
|
|
|
|
|
//补全停止前最新一次的订单信息
|
|
|
|
|
//equipmentOrder : 来自MongoDb
|
|
|
|
|
//hangUpOrderList: 来自Mysql中需要补单的订单
|
|
|
|
|
EquipmentChargeOrderDO lastOrderInfo = beforeStopLastOrderInfo(equipmentOrder, hangUpOrderList);
|
|
|
|
|
//执行新版本的补单操作
|
|
|
|
|
addSettleV2(lastOrderInfo, equipmentOrder, equipmentOrder.getEquipmentSn()); //补单
|
|
|
|
|
|
|
|
|
|
log.info("订单号{},补单结束", hangUpOrderList.getOrderNo());
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
//记录日志
|
|
|
|
|
addOrderTrack(hangUpOrderList.getOrderNo(), hangUpOrderList.getUserId(), hangUpOrderList.getConnectorId().toString(), (byte) 3, (byte) 0, "补单失败,补单异常,异常信息");
|
|
|
|
|
log.error("订单号" + hangUpOrderList.getOrderNo() + ",补单异常,异常信息:", e);
|
|
|
|
|
}
|
|
|
|
@ -165,14 +179,14 @@ public class AsyncTaskService {
|
|
|
|
|
try {
|
|
|
|
|
//从mongo上获取最后一次推送的账单数据
|
|
|
|
|
NotificationChargeOrderInfoReqMongoDO notificationChargeOrderInfoReqMongoDO = notificationChargeOrderInfoReqDao.findOne(orderDO.getOrderNo());
|
|
|
|
|
if(notificationChargeOrderInfoReqMongoDO != null) {
|
|
|
|
|
if (notificationChargeOrderInfoReqMongoDO != null) {
|
|
|
|
|
completeWithPushedOrder(orderDO, notificationChargeOrderInfoReqMongoDO);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//若是没有,则从mongo中获取最后一次充电中推送的数据 进行结算
|
|
|
|
|
ReverseOrderInfo reverseOrderInfo = reverseOrderInfoDao.findOne(orderDO.getOrderNo());
|
|
|
|
|
if(reverseOrderInfo != null) {
|
|
|
|
|
if (reverseOrderInfo != null) {
|
|
|
|
|
completeWithLastPushedOrder(orderDO, reverseOrderInfo);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -182,13 +196,16 @@ public class AsyncTaskService {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Async(value = "asyncTaskExecutor")
|
|
|
|
|
public void handleInSettlementOrder(String startChargeSeq,Integer payStatus){
|
|
|
|
|
openApiServiceApi.handleInSettlementOrder(startChargeSeq,payStatus);
|
|
|
|
|
public void handleInSettlementOrder(String startChargeSeq, Integer payStatus) {
|
|
|
|
|
openApiServiceApi.handleInSettlementOrder(startChargeSeq, payStatus);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 根据最后一次充电中的订单数据进行结算
|
|
|
|
|
* @param orderDO 订单信息
|
|
|
|
|
*
|
|
|
|
|
* @param orderDO 订单信息
|
|
|
|
|
* @param reverseOrderInfo 推送的最后一次充电中的数据
|
|
|
|
|
*/
|
|
|
|
|
private void completeWithLastPushedOrder(EquipmentChargeOrderDO orderDO, ReverseOrderInfo reverseOrderInfo) {
|
|
|
|
@ -220,7 +237,8 @@ public class AsyncTaskService {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 根据最新推送的账单数据进行结算
|
|
|
|
|
* @param orderDO 订单信息
|
|
|
|
|
*
|
|
|
|
|
* @param orderDO 订单信息
|
|
|
|
|
* @param pushedOrderDO 推送的账单信息
|
|
|
|
|
*/
|
|
|
|
|
private void completeWithPushedOrder(EquipmentChargeOrderDO orderDO, NotificationChargeOrderInfoReqMongoDO pushedOrderDO) {
|
|
|
|
@ -285,7 +303,7 @@ public class AsyncTaskService {
|
|
|
|
|
joinActivityRebate(orderDTO.getUserId().toString(), orderDO.getOrderNo(), "0", "0", "", "1");
|
|
|
|
|
|
|
|
|
|
//推送碳大脑
|
|
|
|
|
if (flag){
|
|
|
|
|
if (flag) {
|
|
|
|
|
openApiServiceApi.pushOrderCarbonCrain(orderDO.getOrderNo());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -301,6 +319,7 @@ public class AsyncTaskService {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 扣费完成,进行订单数据的更新
|
|
|
|
|
*
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
private EquipmentChargeOrderDO updateOrderOutlayInfoReverseV2(NotifyChargeOrderInfoBO notifyChargeOrderInfoBO, EquipmentChargeOrderDTO orderDTO, EquipmentChargeOrderDO orderInfo) {
|
|
|
|
@ -364,7 +383,8 @@ public class AsyncTaskService {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 插入订单分时段信息 - 反向
|
|
|
|
|
* @param orderNo 订单编号
|
|
|
|
|
*
|
|
|
|
|
* @param orderNo 订单编号
|
|
|
|
|
* @param chargeDetail 详单数据
|
|
|
|
|
*/
|
|
|
|
|
private void insertOrderDetailReverse(String orderNo, List<ChargeDetailDTO> chargeDetail) {
|
|
|
|
@ -406,8 +426,8 @@ public class AsyncTaskService {
|
|
|
|
|
long chargeStartTime = getCurrentMinute(chargeDetail.get(i).getDetailStartTime());
|
|
|
|
|
|
|
|
|
|
//查询当前的detail的开始时间的所属计费时段
|
|
|
|
|
for(PriceRule priceRule : lpr) {
|
|
|
|
|
if(priceRule.getStartTime().longValue() <= chargeStartTime && priceRule.getEndTime().longValue() > chargeStartTime) {
|
|
|
|
|
for (PriceRule priceRule : lpr) {
|
|
|
|
|
if (priceRule.getStartTime().longValue() <= chargeStartTime && priceRule.getEndTime().longValue() > chargeStartTime) {
|
|
|
|
|
timeFlag = priceRule.getTimeFlag();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -431,6 +451,7 @@ public class AsyncTaskService {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 获取当前时间的分钟数
|
|
|
|
|
*
|
|
|
|
|
* @param detailStartTime 当面的充电开始时间
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
@ -528,37 +549,59 @@ public class AsyncTaskService {
|
|
|
|
|
* 补全停止前最新一次的订单信息
|
|
|
|
|
*/
|
|
|
|
|
public EquipmentChargeOrderDO beforeStopLastOrderInfo(EquipmentOrder equipmentOrder, EquipmentChargeOrderDO orderInfo) {
|
|
|
|
|
//处理分时段电量, 通俗点说就是把一个Double[]转化为一个以逗号分隔开的字符串
|
|
|
|
|
String timeShare = timeShareComputeStr(equipmentOrder.getMultiChargeDegree());
|
|
|
|
|
orderInfo.setChargeBeginTime(Optional.ofNullable(equipmentOrder.getChargeBeginTime()).orElse(orderInfo.getChargeBeginTime()));
|
|
|
|
|
//充电分时度数
|
|
|
|
|
orderInfo.setChargeTimesDegree(timeShare);
|
|
|
|
|
|
|
|
|
|
//充电开始时间
|
|
|
|
|
orderInfo.setChargeBeginTime(Optional.ofNullable(equipmentOrder.getChargeBeginTime()).orElse(orderInfo.getChargeBeginTime()));
|
|
|
|
|
//充电结束时间
|
|
|
|
|
orderInfo.setChargeEndTime(equipmentOrder.getChargeEndTime());
|
|
|
|
|
//充电时长
|
|
|
|
|
orderInfo.setChargeDuration(equipmentOrder.getChargeDuration());
|
|
|
|
|
//充电开始度数
|
|
|
|
|
orderInfo.setChargeBeginDegree(equipmentOrder.getChargeBeginDegree());
|
|
|
|
|
//充电结束度数
|
|
|
|
|
orderInfo.setChargeEndDegree(equipmentOrder.getChargeEndDegree());
|
|
|
|
|
//充电度数
|
|
|
|
|
orderInfo.setChargeDegree(equipmentOrder.getChargeDegree());
|
|
|
|
|
//充电开始soc
|
|
|
|
|
orderInfo.setChargeBeginSoc(Double.valueOf(equipmentOrder.getChargeBeginSoc()).intValue());
|
|
|
|
|
//充电结束soc
|
|
|
|
|
orderInfo.setChargeEndSoc(Double.valueOf(equipmentOrder.getChargeEndSoc()).intValue());
|
|
|
|
|
//充电当前soc
|
|
|
|
|
orderInfo.setChargeCurSoc(Double.valueOf(equipmentOrder.getChargeEndSoc()).intValue());
|
|
|
|
|
//充电策略
|
|
|
|
|
orderInfo.setChargeStrategy(equipmentOrder.getChargeStrategy());
|
|
|
|
|
//充电策略参数
|
|
|
|
|
orderInfo.setChargeStrategyParam(equipmentOrder.getChargeStrategyParam());
|
|
|
|
|
//启动方式 0本地刷卡启动 1后台启动 2本地管理员启动
|
|
|
|
|
orderInfo.setBootMode(equipmentOrder.getBootMode());
|
|
|
|
|
//车辆vin码
|
|
|
|
|
orderInfo.setChargeVin(equipmentOrder.getChargeVin());
|
|
|
|
|
//充电电量
|
|
|
|
|
orderInfo.setChargeAh(equipmentOrder.getChargeDegree() * 100);
|
|
|
|
|
//结束编码
|
|
|
|
|
orderInfo.setFinishCode(44);
|
|
|
|
|
//结束类型
|
|
|
|
|
orderInfo.setFinishType(2);
|
|
|
|
|
//结束原因
|
|
|
|
|
orderInfo.setFinishMsg("补单结束");
|
|
|
|
|
//订单结束时间
|
|
|
|
|
orderInfo.setFinishTime(ToolDateTime.getDate());
|
|
|
|
|
return orderInfo;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 添加一条订单轨迹
|
|
|
|
|
* @param orderNo 订单编号
|
|
|
|
|
* @param userId 用户id
|
|
|
|
|
*
|
|
|
|
|
* @param orderNo 订单编号
|
|
|
|
|
* @param userId 用户id
|
|
|
|
|
* @param connectorSn 枪编号
|
|
|
|
|
* @param state 订单状态 状态 0创建中 1启动中 2充电中 3充电完成 4充电异常 5订单挂起 101扫码启动(设备认证) 102用户启动充电 103用户主动停止
|
|
|
|
|
* @param succStat 操作结果 0 成功 1失败
|
|
|
|
|
* @param failReason 失败理由
|
|
|
|
|
* @param state 订单状态 状态 0创建中 1启动中 2充电中 3充电完成 4充电异常 5订单挂起 101扫码启动(设备认证) 102用户启动充电 103用户主动停止
|
|
|
|
|
* @param succStat 操作结果 0 成功 1失败
|
|
|
|
|
* @param failReason 失败理由
|
|
|
|
|
*/
|
|
|
|
|
public void addOrderTrack(String orderNo, Long userId, String connectorSn, Byte state, Byte succStat, String failReason) {
|
|
|
|
|
EquipmentChargeOrderTrackDO trackDO = new EquipmentChargeOrderTrackDO();
|
|
|
|
@ -605,8 +648,8 @@ public class AsyncTaskService {
|
|
|
|
|
if (settle.getCode() != 1000 || settle.getData() == null) {
|
|
|
|
|
// hangOrder(orderInfo.getOrderNo(), "补单结算失败,计费失败,原因:" + settle.getMsg(), settle.getCode());
|
|
|
|
|
log.error("补单结算订单:{}计费失败,原因:{}", orderInfo.getOrderNo(), settle.getMsg());
|
|
|
|
|
addOrderTrack(orderInfo.getOrderNo(), orderInfo.getUserId(), orderInfo.getConnectorId().toString(), (byte)3, (byte) 0, "补单结算失败,计费失败,原因:" + settle.getMsg());
|
|
|
|
|
return ;
|
|
|
|
|
addOrderTrack(orderInfo.getOrderNo(), orderInfo.getUserId(), orderInfo.getConnectorId().toString(), (byte) 3, (byte) 0, "补单结算失败,计费失败,原因:" + settle.getMsg());
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//获取订单返回的计费信息
|
|
|
|
@ -650,7 +693,7 @@ public class AsyncTaskService {
|
|
|
|
|
joinActivityRebate(orderInfo.getUserId().toString(), orderInfo.getOrderNo(), "0", "0", "", "1");
|
|
|
|
|
|
|
|
|
|
//推送碳大脑
|
|
|
|
|
if (flag){
|
|
|
|
|
if (flag) {
|
|
|
|
|
openApiServiceApi.pushOrderCarbonCrain(orderInfo.getOrderNo());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -667,6 +710,7 @@ public class AsyncTaskService {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 获取返回的orderDTO数据
|
|
|
|
|
*
|
|
|
|
|
* @param settle 订单计费返回信息
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
@ -679,6 +723,7 @@ public class AsyncTaskService {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 扣费成功后,进行订单数据的更新
|
|
|
|
|
*
|
|
|
|
|
* @param orderDTO
|
|
|
|
|
* @param orderInfo
|
|
|
|
|
* @return
|
|
|
|
@ -718,11 +763,11 @@ public class AsyncTaskService {
|
|
|
|
|
orderInfo.setUpdateTime(now);
|
|
|
|
|
|
|
|
|
|
//若是有使用优惠券,则进行优惠券的处理
|
|
|
|
|
if(orderDTO.getUserCouponId() != null && orderDTO.getUserCouponId() != 0) {
|
|
|
|
|
if (orderDTO.getUserCouponId() != null && orderDTO.getUserCouponId() != 0) {
|
|
|
|
|
UserCouponDO userCouponDO = userCouponDOMapper.selectByPrimaryKey(orderDTO.getUserCouponId());
|
|
|
|
|
//无限制优惠券不更新状态
|
|
|
|
|
//非无限制的优惠券才进行优惠券状态的更新
|
|
|
|
|
if(userCouponDO.getIsLimitNum() != 1) {
|
|
|
|
|
if (userCouponDO.getIsLimitNum() != 1) {
|
|
|
|
|
userCouponDO.setState("1");
|
|
|
|
|
userCouponDO.setUtilityTime(DateUtil.formatDateTime(now));
|
|
|
|
|
userCouponDO.setUpdateTime(now);
|
|
|
|
@ -733,7 +778,7 @@ public class AsyncTaskService {
|
|
|
|
|
equipmentChargeOrderDOMapper.updateByPrimaryKeySelective(orderInfo);
|
|
|
|
|
|
|
|
|
|
//插入详单数据
|
|
|
|
|
if(orderDTO.getChargeSettleType() == 2 && orderDTO.getDetailDOList().size() > 0) {
|
|
|
|
|
if (orderDTO.getChargeSettleType() == 2 && orderDTO.getDetailDOList().size() > 0) {
|
|
|
|
|
equipmentChargeOrderDetailDOMapper.insertList(orderDTO.getDetailDOList());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -742,7 +787,8 @@ public class AsyncTaskService {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 计费后进行订单状态的更新
|
|
|
|
|
* @param orderDTO 计费返回数据
|
|
|
|
|
*
|
|
|
|
|
* @param orderDTO 计费返回数据
|
|
|
|
|
* @param orderInfo 订单信息
|
|
|
|
|
*/
|
|
|
|
|
private EquipmentChargeOrderDO updateOrderSettleInfoV2(EquipmentChargeOrderDTO orderDTO, EquipmentChargeOrderDO orderInfo) {
|
|
|
|
@ -773,12 +819,13 @@ public class AsyncTaskService {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 转类型
|
|
|
|
|
*
|
|
|
|
|
* @param chargeTimesDegree
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
private Double[] getFinalChargeTimesDegree(double[] chargeTimesDegree) {
|
|
|
|
|
Double[] timeShare = new Double[chargeTimesDegree.length];
|
|
|
|
|
for (int i = 0; i < chargeTimesDegree.length; i++){
|
|
|
|
|
for (int i = 0; i < chargeTimesDegree.length; i++) {
|
|
|
|
|
timeShare[i] = chargeTimesDegree[i];
|
|
|
|
|
}
|
|
|
|
|
return timeShare;
|
|
|
|
@ -786,8 +833,9 @@ public class AsyncTaskService {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 将订单置为挂起状态
|
|
|
|
|
*
|
|
|
|
|
* @param orderNo 订单编号
|
|
|
|
|
* @param msg 描述
|
|
|
|
|
* @param msg 描述
|
|
|
|
|
* @param code
|
|
|
|
|
*/
|
|
|
|
|
private void hangOrder(String orderNo, String msg, Integer code) {
|
|
|
|
@ -1005,6 +1053,7 @@ public class AsyncTaskService {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 更新启明特殊订单结算中状态
|
|
|
|
|
*
|
|
|
|
|
* @param orderDTO
|
|
|
|
|
* @param orderInfo
|
|
|
|
|
*/
|
|
|
|
|