提交 66ce90c5 authored 作者: huyufan's avatar huyufan

bug处理

上级 5ce53ed4
......@@ -110,20 +110,20 @@ public class OrderCancelComponent implements InitializingBean {
List<OrderChild> orderChildren = orderChildDao.selectResidueWeight(orderNo, OrderChildEnum.Status.ARRIVE_SEND.getCode());
log.info("执行货主取消未拉运+未到达货源地吨数,当前运单个数" + orderChildren.size());
List<Integer> ids = new LinkedList<>();
List<String> childNoList = new LinkedList<>();
for (OrderChild orderChild : orderChildren) {
log.info("取消的运单:{}", JSONUtil.parse(orderChild));
//释放车辆
driverService.updateOrderStatus(orderChild.getDriverUserNo(), DriverInfoEnum.DriverStatus.NO.getCode(), orderChild.getTruckId(), 1);
ids.add(orderChild.getId());
childNoList.add(orderChild.getChildNo());
}
Map<String, List<OrderChild>> orderChildMap = new HashMap<>();
if (CollectionUtil.isNotEmpty(ids)) {
log.info("ids:{}", ids);
if (CollectionUtil.isNotEmpty(childNoList)) {
log.info("childNoList:{}", childNoList);
orderChildDao.batchUpdateOrderChildStatus(
OrderChildEnum.Status.OWNER_CANCEL.getCode(), "货主取消",
now, now,ids);
now, now,childNoList);
orderChildMap = orderChildren.stream()
.collect(Collectors.groupingBy(OrderChild::getOrderGoodsNo));
......
......@@ -15,6 +15,7 @@ import com.clx.performance.enums.TruckDemandEnum;
import com.clx.performance.extranal.user.DriverService;
import com.clx.performance.model.OrderChild;
import com.clx.performance.model.OrderGoods;
import com.clx.performance.service.OrderChildService;
import com.clx.performance.service.breakcontract.BreakContractDriverRecordService;
import com.clx.user.enums.driver.DriverInfoEnum;
import com.msl.common.base.Optional;
......@@ -22,6 +23,7 @@ import com.xxl.job.core.handler.annotation.XxlJob;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.ZSetOperations;
import org.springframework.stereotype.Component;
......@@ -56,6 +58,7 @@ public class OrderGoodsStatusLazyComponent implements InitializingBean {
private final BreakContractDriverRecordService breakContractDriverRecordService;
//根据货单最晚接单时间处理
public void expireProduceByLastOrderTime(LocalDateTime localDateTime, String orderGoodsNo) {
redisTemplate.opsForZSet().add(RedisConstants.ORDER_GOODS_STATUS_LAZY_LAST_ORDER_TIME, orderGoodsNo, localDateTime.toInstant(ZoneOffset.of("+8")).toEpochMilli());
......@@ -201,10 +204,10 @@ public class OrderGoodsStatusLazyComponent implements InitializingBean {
BigDecimal childSum = BigDecimal.ZERO;
List<Integer> ids = new LinkedList<>();
List<String> childNoList = new LinkedList<>();
for (OrderChild orderChild : orderChildrenList) {
childSum = childSum.add(orderChild.getWeight());
ids.add(orderChild.getId());
childNoList.add(orderChild.getChildNo());
//释放车辆
driverService.updateOrderStatus(orderChild.getDriverUserNo(), DriverInfoEnum.DriverStatus.NO.getCode(), orderChild.getTruckId(), 1);
orderChild.setCancelTime(now);
......@@ -212,9 +215,9 @@ public class OrderGoodsStatusLazyComponent implements InitializingBean {
breakContractDriverRecordService.saveDriverRecordOfOrderChildCancel(orderChild, 0L, "系统");
}
log.info("取消运单ID集合:{}", ids);
if (CollectionUtil.isNotEmpty(ids)) {
orderChildDao.batchUpdateOrderChildStatus(OrderChildEnum.Status.PLATFORM_CANCEL.getCode(), "系统取消", now, now, ids);
log.info("取消运单ID集合:{}", childNoList);
if (CollectionUtil.isNotEmpty(childNoList)) {
orderChildDao.batchUpdateOrderChildStatus(OrderChildEnum.Status.PLATFORM_CANCEL.getCode(), "系统取消", now, now, childNoList);
}
RollbackOrderWeightParam param = new RollbackOrderWeightParam();
......@@ -246,6 +249,8 @@ public class OrderGoodsStatusLazyComponent implements InitializingBean {
orderGoodsDao.updateOrderGoodsSetResidueWeightAndAlreadyWeight(childSum, childSum, orderGoods.getId());
}
redisTemplate.opsForZSet().remove(RedisConstants.ORDER_GOODS_STATUS_LAZY_LAST_ARRIVE_SEND_TIME, orderGoodsId.getValue());
}
}
}
......
......@@ -103,7 +103,7 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int
List<OrderChild> selectArriveSendOrderChildGe(String orderGoodsNo);
void batchUpdateOrderChildStatus(Integer status, String remark, LocalDateTime cancelTime, LocalDateTime finishTime, List<Integer> ids);
void batchUpdateOrderChildStatus(Integer status, String remark, LocalDateTime cancelTime, LocalDateTime finishTime, List<String> childNoList);
List<OrderChild> selectOrderChildListByOrderGoodsNoAndStatusGE(String orderGoodsNo, Integer status);
......
......@@ -312,8 +312,8 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
}
@Override
public void batchUpdateOrderChildStatus(Integer status, String remark, LocalDateTime cancelTime, LocalDateTime finishTime, List<Integer> ids) {
baseMapper.updateOrderGoodsSetResidueWeight(status,remark, cancelTime, finishTime, ids);
public void batchUpdateOrderChildStatus(Integer status, String remark, LocalDateTime cancelTime, LocalDateTime finishTime, List<String> childNoList) {
baseMapper.updateOrderGoodsSetResidueWeight(status,remark, cancelTime, finishTime, childNoList);
}
@Override
......
......@@ -50,5 +50,5 @@ public interface OrderChildMapper extends BaseMapper<OrderChild> {
@UpdateProvider(type = OrderChildSqlProvider.class, method = "batchUpdateOrderChildStatus")
Integer updateOrderGoodsSetResidueWeight(@Param(value = "status") Integer status, @Param(value = "remark") String remark,
@Param(value = "cancelTime") LocalDateTime cancelTime, @Param(value = "finishTime") LocalDateTime finishTime,
@Param(value = "ids") List<Integer> ids);
@Param(value = "childNoList") List<String> childNoList);
}
\ No newline at end of file
......@@ -78,4 +78,6 @@ public interface OrderChildService {
*/
List<OrderChild> selectInTransitOrderChild(String orderNo);
void orderChildFinish(String childNo);
}
......@@ -112,17 +112,17 @@ public class OrderCancelServiceImpl implements OrderCancelService {
} else {
List<OrderChild> arriveSendChildList = orderChildDao.selectResidueWeight(orderNo, OrderChildEnum.Status.ARRIVE_SEND.getCode());
List<Integer> ids = new LinkedList<>();
List<String> childNoList = new LinkedList<>();
for (OrderChild orderChild : arriveSendChildList) {
//释放车辆
driverService.updateOrderStatus(orderChild.getDriverUserNo(), DriverInfoEnum.DriverStatus.NO.getCode(), orderChild.getTruckId(), 1);
ids.add(orderChild.getId());
childNoList.add(orderChild.getChildNo());
}
if (CollectionUtil.isNotEmpty(ids)) {
if (CollectionUtil.isNotEmpty(childNoList)) {
orderChildDao.batchUpdateOrderChildStatus(
OrderChildEnum.Status.PLATFORM_CANCEL.getCode(), "系统取消",
now, now,ids);
now, now,childNoList);
orderStatusCode = OrderEnum.Status.COMPLETED.getCode();
}
......@@ -402,16 +402,16 @@ public class OrderCancelServiceImpl implements OrderCancelService {
if (CollectionUtil.isEmpty(orderChildren)) {
throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "当前订单已发生变化,请重新选择取消方式");
}
List<Integer> ids = new LinkedList<>();
List<String > childNoList = new LinkedList<>();
for (OrderChild orderChild : orderChildren) {
//释放车辆
driverService.updateOrderStatus(orderChild.getDriverUserNo(), DriverInfoEnum.DriverStatus.NO.getCode(), orderChild.getTruckId(), 1);
ids.add(orderChild.getId());
childNoList.add(orderChild.getChildNo());
}
if (CollectionUtil.isNotEmpty(ids)) {
if (CollectionUtil.isNotEmpty(childNoList)) {
orderChildDao.batchUpdateOrderChildStatus(
OrderChildEnum.Status.OWNER_CANCEL.getCode(), "平台取消",
now, now, ids);
now, now, childNoList);
}
orderGoodsList = orderGoodsDao.getOrderGoodsListByOrderNo(orderNo);
......
......@@ -932,7 +932,10 @@ public class OrderChildServiceImpl implements OrderChildService {
}
BigDecimal dif = param.getLoadNet().subtract(orderChild.getWeight());
if (dif.compareTo(BigDecimal.ZERO) != 0) {
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_WEIGHT_NOT_EQ);
}
orderChild.setLoadRough(param.getLoadRough());
orderChild.setLoadTare(param.getLoadTare());
orderChild.setLoadNet(param.getLoadNet());
......@@ -1214,6 +1217,14 @@ public class OrderChildServiceImpl implements OrderChildService {
}
@Override
public void orderChildFinish(String childNo){
// 运单结束 统计积分
integralMqService.orderChildFinish(childNo);
}
/**
* 生成计费单
*/
......
......@@ -30,6 +30,8 @@ import com.clx.performance.param.app.OrderGoodsListPageParam;
import com.clx.performance.param.pc.OrderGoodsCancelParam;
import com.clx.performance.param.pc.UpdateEditOrderGoodsParam;
import com.clx.performance.param.pc.UpdateOrderGoodsPriceParam;
import com.clx.performance.service.IntegralMqService;
import com.clx.performance.service.OrderChildService;
import com.clx.performance.service.OrderGoodsLogService;
import com.clx.performance.service.OrderGoodsService;
import com.clx.performance.struct.OrderGoodsStruct;
......@@ -93,12 +95,15 @@ public class OrderGoodsServiceImpl implements OrderGoodsService {
private GoodsOrderTruckRecordComponent goodsOrderTruckRecordComponent;
private OrderGoodsStatusLazyComponent orderGoodsStatusLazyComponent;
private DriverService driverService;
private OrderCancelComponent orderCancelComponent;
private final OrderChildService orderChildService;
@Override
public OrderGoodsVO getOrderGoodsInfoByOrderGoodsNoForPC(String orderGoodsNo) {
OrderGoodsVO orderGoodsVO = orderGoodsDao.getOrderGoodsInfoByOrderGoodsNoForPC(orderGoodsNo).map(orderGoodsStruct::convert).get();
......@@ -402,6 +407,9 @@ public class OrderGoodsServiceImpl implements OrderGoodsService {
for (OrderGoodsTruckBind bind : getChildList) {
if (!truckList.contains(bind.getTruckNo())) {
throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "当前取消的车辆已经接单,车牌号为:" + bind.getTruckNo());
} else {
//已存在的记录不需要重新创建绑定记录
truckList.remove(bind.getTruckNo());
}
}
}
......@@ -466,7 +474,7 @@ public class OrderGoodsServiceImpl implements OrderGoodsService {
List<OrderChild> orderChildList = null;
BigDecimal residueWeight = null;
BigDecimal sum = BigDecimal.ZERO;
List<Integer> ids = new LinkedList<>();
List<String> childNoList = new LinkedList<>();
RollbackOrderWeightParam param = new RollbackOrderWeightParam();
Integer cancelOperateType = goodsCancelParam.getCancelOperateType();
......@@ -511,12 +519,12 @@ public class OrderGoodsServiceImpl implements OrderGoodsService {
if (CollectionUtils.isNotEmpty(filterOrderChildList)) {
for (OrderChild orderChild : filterOrderChildList) {
driverService.updateOrderStatus(orderChild.getDriverUserNo(), DriverInfoEnum.DriverStatus.NO.getCode(), orderChild.getTruckId(), 1);
ids.add(orderChild.getId());
childNoList.add(orderChild.getChildNo());
sum = sum.add(orderChild.getWeight());
}
orderChildDao.batchUpdateOrderChildStatus(
OrderChildEnum.Status.PLATFORM_CANCEL.getCode(), "系统取消",
now,now,ids);
now,now,childNoList);
}
orderChildList.removeAll(filterOrderChildList);
if (CollectionUtil.isNotEmpty(orderChildList)) {
......@@ -558,12 +566,12 @@ public class OrderGoodsServiceImpl implements OrderGoodsService {
for (OrderChild orderChild : filterOrderChildList) {
driverService.updateOrderStatus(orderChild.getDriverUserNo(), DriverInfoEnum.DriverStatus.NO.getCode(), orderChild.getTruckId(), 1);
ids.add(orderChild.getId());
childNoList.add(orderChild.getChildNo());
sum = sum.add(orderChild.getWeight());
}
orderChildDao.batchUpdateOrderChildStatus(
OrderChildEnum.Status.PLATFORM_CANCEL.getCode(),"系统取消",
now, now, ids);
now, now, childNoList);
orderChildList.removeAll(filterOrderChildList);
if (CollectionUtil.isNotEmpty(orderChildList)) {
orderGoodsStatus = OrderGoodsStatusEnum.Status.COMPLETED.getCode();
......
......@@ -129,17 +129,17 @@ public class OrderChildSqlProvider {
public String batchUpdateOrderChildStatus(@Param(value ="status") Integer status, @Param(value ="remark") String remark,
@Param(value = "cancelTime") LocalDateTime cancelTime, @Param(value = "finishTime") LocalDateTime finishTime,
@Param(value = "ids") List<Integer> ids ){
@Param(value = "childNoList") List<String> childNoList ){
StringBuffer sqlList = new StringBuffer();
sqlList.append("update order_child set cancel_remark = '"+ remark +"' ,status = " + status + ",cancel_time = "
+ cancelTime +",finish_time = " + finishTime + " where id in (");
for (int i = 0; i < ids.size(); i++) {
Integer id = ids.get(i);
+ cancelTime +",finish_time = " + finishTime + " where child_no in (");
for (int i = 0; i < childNoList.size(); i++) {
String childNo = childNoList.get(i);
sqlList.append("'").append(id).append("'");
sqlList.append("'").append(childNo).append("'");
if (i < ids.size() - 1) {
if (i < childNoList.size() - 1) {
sqlList.append(",");
}
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论