提交 9585f2f1 authored 作者: huyufan's avatar huyufan

Merge remote-tracking branch 'origin/v5.7_break_contract_reverse_20231020' into test

...@@ -110,20 +110,20 @@ public class OrderCancelComponent implements InitializingBean { ...@@ -110,20 +110,20 @@ public class OrderCancelComponent implements InitializingBean {
List<OrderChild> orderChildren = orderChildDao.selectResidueWeight(orderNo, OrderChildEnum.Status.ARRIVE_SEND.getCode()); List<OrderChild> orderChildren = orderChildDao.selectResidueWeight(orderNo, OrderChildEnum.Status.ARRIVE_SEND.getCode());
log.info("执行货主取消未拉运+未到达货源地吨数,当前运单个数" + orderChildren.size()); log.info("执行货主取消未拉运+未到达货源地吨数,当前运单个数" + orderChildren.size());
List<Integer> ids = new LinkedList<>(); List<String> childNoList = new LinkedList<>();
for (OrderChild orderChild : orderChildren) { for (OrderChild orderChild : orderChildren) {
log.info("取消的运单:{}", JSONUtil.parse(orderChild)); log.info("取消的运单:{}", JSONUtil.parse(orderChild));
//释放车辆 //释放车辆
driverService.updateOrderStatus(orderChild.getDriverUserNo(), DriverInfoEnum.DriverStatus.NO.getCode(), orderChild.getTruckId(), 1); 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<>(); Map<String, List<OrderChild>> orderChildMap = new HashMap<>();
if (CollectionUtil.isNotEmpty(ids)) { if (CollectionUtil.isNotEmpty(childNoList)) {
log.info("ids:{}", ids); log.info("childNoList:{}", childNoList);
orderChildDao.batchUpdateOrderChildStatus( orderChildDao.batchUpdateOrderChildStatus(
OrderChildEnum.Status.OWNER_CANCEL.getCode(), "货主取消", OrderChildEnum.Status.OWNER_CANCEL.getCode(), "货主取消",
now, now,ids); now, now,childNoList);
orderChildMap = orderChildren.stream() orderChildMap = orderChildren.stream()
.collect(Collectors.groupingBy(OrderChild::getOrderGoodsNo)); .collect(Collectors.groupingBy(OrderChild::getOrderGoodsNo));
......
...@@ -15,6 +15,7 @@ import com.clx.performance.enums.TruckDemandEnum; ...@@ -15,6 +15,7 @@ import com.clx.performance.enums.TruckDemandEnum;
import com.clx.performance.extranal.user.DriverService; import com.clx.performance.extranal.user.DriverService;
import com.clx.performance.model.OrderChild; import com.clx.performance.model.OrderChild;
import com.clx.performance.model.OrderGoods; import com.clx.performance.model.OrderGoods;
import com.clx.performance.service.OrderChildService;
import com.clx.performance.service.breakcontract.BreakContractDriverRecordService; import com.clx.performance.service.breakcontract.BreakContractDriverRecordService;
import com.clx.user.enums.driver.DriverInfoEnum; import com.clx.user.enums.driver.DriverInfoEnum;
import com.msl.common.base.Optional; import com.msl.common.base.Optional;
...@@ -22,6 +23,7 @@ import com.xxl.job.core.handler.annotation.XxlJob; ...@@ -22,6 +23,7 @@ import com.xxl.job.core.handler.annotation.XxlJob;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.InitializingBean; 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.RedisTemplate;
import org.springframework.data.redis.core.ZSetOperations; import org.springframework.data.redis.core.ZSetOperations;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
...@@ -56,6 +58,7 @@ public class OrderGoodsStatusLazyComponent implements InitializingBean { ...@@ -56,6 +58,7 @@ public class OrderGoodsStatusLazyComponent implements InitializingBean {
private final BreakContractDriverRecordService breakContractDriverRecordService; private final BreakContractDriverRecordService breakContractDriverRecordService;
//根据货单最晚接单时间处理 //根据货单最晚接单时间处理
public void expireProduceByLastOrderTime(LocalDateTime localDateTime, String orderGoodsNo) { 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()); 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 { ...@@ -201,10 +204,10 @@ public class OrderGoodsStatusLazyComponent implements InitializingBean {
BigDecimal childSum = BigDecimal.ZERO; BigDecimal childSum = BigDecimal.ZERO;
List<Integer> ids = new LinkedList<>(); List<String> childNoList = new LinkedList<>();
for (OrderChild orderChild : orderChildrenList) { for (OrderChild orderChild : orderChildrenList) {
childSum = childSum.add(orderChild.getWeight()); childSum = childSum.add(orderChild.getWeight());
ids.add(orderChild.getId()); childNoList.add(orderChild.getChildNo());
//释放车辆 //释放车辆
driverService.updateOrderStatus(orderChild.getDriverUserNo(), DriverInfoEnum.DriverStatus.NO.getCode(), orderChild.getTruckId(), 1); driverService.updateOrderStatus(orderChild.getDriverUserNo(), DriverInfoEnum.DriverStatus.NO.getCode(), orderChild.getTruckId(), 1);
orderChild.setCancelTime(now); orderChild.setCancelTime(now);
...@@ -212,9 +215,9 @@ public class OrderGoodsStatusLazyComponent implements InitializingBean { ...@@ -212,9 +215,9 @@ public class OrderGoodsStatusLazyComponent implements InitializingBean {
breakContractDriverRecordService.saveDriverRecordOfOrderChildCancel(orderChild, 0L, "系统"); breakContractDriverRecordService.saveDriverRecordOfOrderChildCancel(orderChild, 0L, "系统");
} }
log.info("取消运单ID集合:{}", ids); log.info("取消运单ID集合:{}", childNoList);
if (CollectionUtil.isNotEmpty(ids)) { if (CollectionUtil.isNotEmpty(childNoList)) {
orderChildDao.batchUpdateOrderChildStatus(OrderChildEnum.Status.PLATFORM_CANCEL.getCode(), "系统取消", now, now, ids); orderChildDao.batchUpdateOrderChildStatus(OrderChildEnum.Status.PLATFORM_CANCEL.getCode(), "系统取消", now, now, childNoList);
} }
RollbackOrderWeightParam param = new RollbackOrderWeightParam(); RollbackOrderWeightParam param = new RollbackOrderWeightParam();
...@@ -246,6 +249,8 @@ public class OrderGoodsStatusLazyComponent implements InitializingBean { ...@@ -246,6 +249,8 @@ public class OrderGoodsStatusLazyComponent implements InitializingBean {
orderGoodsDao.updateOrderGoodsSetResidueWeightAndAlreadyWeight(childSum, childSum, orderGoods.getId()); orderGoodsDao.updateOrderGoodsSetResidueWeightAndAlreadyWeight(childSum, childSum, orderGoods.getId());
} }
redisTemplate.opsForZSet().remove(RedisConstants.ORDER_GOODS_STATUS_LAZY_LAST_ARRIVE_SEND_TIME, orderGoodsId.getValue()); 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 ...@@ -103,7 +103,7 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int
List<OrderChild> selectArriveSendOrderChildGe(String orderGoodsNo); 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); List<OrderChild> selectOrderChildListByOrderGoodsNoAndStatusGE(String orderGoodsNo, Integer status);
......
...@@ -312,8 +312,8 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild, ...@@ -312,8 +312,8 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
} }
@Override @Override
public void batchUpdateOrderChildStatus(Integer status, String remark, LocalDateTime cancelTime, LocalDateTime finishTime, List<Integer> ids) { public void batchUpdateOrderChildStatus(Integer status, String remark, LocalDateTime cancelTime, LocalDateTime finishTime, List<String> childNoList) {
baseMapper.updateOrderGoodsSetResidueWeight(status,remark, cancelTime, finishTime, ids); baseMapper.updateOrderGoodsSetResidueWeight(status,remark, cancelTime, finishTime, childNoList);
} }
@Override @Override
......
...@@ -50,5 +50,5 @@ public interface OrderChildMapper extends BaseMapper<OrderChild> { ...@@ -50,5 +50,5 @@ public interface OrderChildMapper extends BaseMapper<OrderChild> {
@UpdateProvider(type = OrderChildSqlProvider.class, method = "batchUpdateOrderChildStatus") @UpdateProvider(type = OrderChildSqlProvider.class, method = "batchUpdateOrderChildStatus")
Integer updateOrderGoodsSetResidueWeight(@Param(value = "status") Integer status, @Param(value = "remark") String remark, Integer updateOrderGoodsSetResidueWeight(@Param(value = "status") Integer status, @Param(value = "remark") String remark,
@Param(value = "cancelTime") LocalDateTime cancelTime, @Param(value = "finishTime") LocalDateTime finishTime, @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 { ...@@ -78,4 +78,6 @@ public interface OrderChildService {
*/ */
List<OrderChild> selectInTransitOrderChild(String orderNo); List<OrderChild> selectInTransitOrderChild(String orderNo);
void orderChildFinish(String childNo);
} }
...@@ -112,17 +112,17 @@ public class OrderCancelServiceImpl implements OrderCancelService { ...@@ -112,17 +112,17 @@ public class OrderCancelServiceImpl implements OrderCancelService {
} else { } else {
List<OrderChild> arriveSendChildList = orderChildDao.selectResidueWeight(orderNo, OrderChildEnum.Status.ARRIVE_SEND.getCode()); 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) { for (OrderChild orderChild : arriveSendChildList) {
//释放车辆 //释放车辆
driverService.updateOrderStatus(orderChild.getDriverUserNo(), DriverInfoEnum.DriverStatus.NO.getCode(), orderChild.getTruckId(), 1); 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( orderChildDao.batchUpdateOrderChildStatus(
OrderChildEnum.Status.PLATFORM_CANCEL.getCode(), "系统取消", OrderChildEnum.Status.PLATFORM_CANCEL.getCode(), "系统取消",
now, now,ids); now, now,childNoList);
orderStatusCode = OrderEnum.Status.COMPLETED.getCode(); orderStatusCode = OrderEnum.Status.COMPLETED.getCode();
} }
...@@ -402,16 +402,16 @@ public class OrderCancelServiceImpl implements OrderCancelService { ...@@ -402,16 +402,16 @@ public class OrderCancelServiceImpl implements OrderCancelService {
if (CollectionUtil.isEmpty(orderChildren)) { if (CollectionUtil.isEmpty(orderChildren)) {
throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "当前订单已发生变化,请重新选择取消方式"); throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "当前订单已发生变化,请重新选择取消方式");
} }
List<Integer> ids = new LinkedList<>(); List<String > childNoList = new LinkedList<>();
for (OrderChild orderChild : orderChildren) { for (OrderChild orderChild : orderChildren) {
//释放车辆 //释放车辆
driverService.updateOrderStatus(orderChild.getDriverUserNo(), DriverInfoEnum.DriverStatus.NO.getCode(), orderChild.getTruckId(), 1); 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( orderChildDao.batchUpdateOrderChildStatus(
OrderChildEnum.Status.OWNER_CANCEL.getCode(), "平台取消", OrderChildEnum.Status.OWNER_CANCEL.getCode(), "平台取消",
now, now, ids); now, now, childNoList);
} }
orderGoodsList = orderGoodsDao.getOrderGoodsListByOrderNo(orderNo); orderGoodsList = orderGoodsDao.getOrderGoodsListByOrderNo(orderNo);
......
...@@ -6,8 +6,8 @@ import com.clx.order.enums.OrderEnum; ...@@ -6,8 +6,8 @@ import com.clx.order.enums.OrderEnum;
import com.clx.order.feign.OrderFeign; import com.clx.order.feign.OrderFeign;
import com.clx.order.vo.feign.FeignAddressVO; import com.clx.order.vo.feign.FeignAddressVO;
import com.clx.order.vo.feign.FeignOrderInfoVO; import com.clx.order.vo.feign.FeignOrderInfoVO;
import com.clx.performance.constant.RedisConstants;
import com.clx.performance.component.GoodsOrderTruckRecordComponent; import com.clx.performance.component.GoodsOrderTruckRecordComponent;
import com.clx.performance.constant.RedisConstants;
import com.clx.performance.constant.RedissonConstants; import com.clx.performance.constant.RedissonConstants;
import com.clx.performance.dao.*; import com.clx.performance.dao.*;
import com.clx.performance.dao.breakcontract.BreakContractDriverRecordDao; import com.clx.performance.dao.breakcontract.BreakContractDriverRecordDao;
...@@ -27,10 +27,6 @@ import com.clx.performance.param.pc.PageCarrierOrderChildParam; ...@@ -27,10 +27,6 @@ import com.clx.performance.param.pc.PageCarrierOrderChildParam;
import com.clx.performance.param.pc.PageMonitorOrderChildQCParam; import com.clx.performance.param.pc.PageMonitorOrderChildQCParam;
import com.clx.performance.param.pc.PagePoundAuditParam; import com.clx.performance.param.pc.PagePoundAuditParam;
import com.clx.performance.service.*; import com.clx.performance.service.*;
import com.clx.performance.service.OrderChildLogService;
import com.clx.performance.service.OrderChildPoundLogService;
import com.clx.performance.service.OrderChildService;
import com.clx.performance.service.OrderGoodsService;
import com.clx.performance.service.breakcontract.BreakContractDriverRecordService; import com.clx.performance.service.breakcontract.BreakContractDriverRecordService;
import com.clx.performance.service.settle.SettlementDriverDetailService; import com.clx.performance.service.settle.SettlementDriverDetailService;
import com.clx.performance.service.settle.SettlementMqService; import com.clx.performance.service.settle.SettlementMqService;
...@@ -51,13 +47,13 @@ import com.msl.common.utils.LocalDateTimeUtils; ...@@ -51,13 +47,13 @@ import com.msl.common.utils.LocalDateTimeUtils;
import com.msl.common.utils.gps.GpsUtil; import com.msl.common.utils.gps.GpsUtil;
import com.msl.user.data.UserSessionData; import com.msl.user.data.UserSessionData;
import com.msl.user.utils.TokenUtil; import com.msl.user.utils.TokenUtil;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.redisson.api.RLock; import org.redisson.api.RLock;
import org.redisson.api.RedissonClient; import org.redisson.api.RedissonClient;
import org.springframework.amqp.core.AmqpTemplate; import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
...@@ -78,43 +74,73 @@ import java.util.stream.Collectors; ...@@ -78,43 +74,73 @@ import java.util.stream.Collectors;
*/ */
@Slf4j @Slf4j
@Service @Service
@AllArgsConstructor
public class OrderChildServiceImpl implements OrderChildService { public class OrderChildServiceImpl implements OrderChildService {
private final AmqpTemplate rabbitTemplate; @Autowired
private final RedisTemplate redisTemplate; private AmqpTemplate rabbitTemplate;
private final OrderGoodsDao orderGoodsDao; @Autowired
private final OrderGoodsTruckBindDao orderGoodsTruckBindDao; private RedisTemplate redisTemplate;
private final OrderChildDao orderChildDao; @Autowired
private final OrderChildImageDao orderChildImageDao; private OrderGoodsDao orderGoodsDao;
private final OrderChildPoundAuditDao orderChildPoundAuditDao; @Autowired
private final OrderChildLogService orderChildLogService; private OrderGoodsTruckBindDao orderGoodsTruckBindDao;
private final OrderChildPoundLogService orderChildPoundLogService; @Autowired
private final AddressService addressService; private OrderChildDao orderChildDao;
private final OrderService orderService; @Autowired
private final GdService gdService; private OrderChildImageDao orderChildImageDao;
private final DriverService driverService; @Autowired
private final OrderChildStruct orderChildStruct; private OrderChildPoundAuditDao orderChildPoundAuditDao;
private final OrderGoodsService orderGoodsService; @Autowired
private final OrderChildPoundStruct orderChildPoundStruct; private OrderChildLogService orderChildLogService;
private final OrderChildFreightStruct orderChildFreightStruct; @Autowired
private final AddressStruct addressStruct; private OrderChildPoundLogService orderChildPoundLogService;
private final OrderChildLogStruct orderChildLogStruct; @Autowired
private final UniqueOrderNumService uniqueOrderNumService; private AddressService addressService;
private final OrderFeign orderFeign; @Autowired
private final RedissonClient redissonClient; private OrderService orderService;
@Autowired
private final IntegralMqService integralMqService; private GdService gdService;
@Autowired
private final GoodsOrderTruckRecordComponent goodsOrderTruckRecordComponent; private DriverService driverService;
private final BreakContractDriverRecordDao breakContractDriverRecordDao; @Autowired
private OrderChildStruct orderChildStruct;
private final SettlementDriverDetailService settlementDriverDetailService; @Autowired
private final SettlementOwnerDetailService settlementOwnerDetailService; private OrderGoodsService orderGoodsService;
private final SettlementMqService settlementMqService; @Autowired
private final OrderChildMqService orderChildMqService; private OrderChildPoundStruct orderChildPoundStruct;
@Autowired
private final OwnerInfoService ownerInfoService; private OrderChildFreightStruct orderChildFreightStruct;
private final BreakContractDriverRecordService breakContractDriverRecordService; @Autowired
private AddressStruct addressStruct;
@Autowired
private OrderChildLogStruct orderChildLogStruct;
@Autowired
private UniqueOrderNumService uniqueOrderNumService;
@Autowired
private OrderFeign orderFeign;
@Autowired
private RedissonClient redissonClient;
@Autowired
private IntegralMqService integralMqService;
@Autowired
private GoodsOrderTruckRecordComponent goodsOrderTruckRecordComponent;
@Autowired
private BreakContractDriverRecordDao breakContractDriverRecordDao;
@Autowired
private SettlementDriverDetailService settlementDriverDetailService;
@Autowired
private SettlementOwnerDetailService settlementOwnerDetailService;
@Autowired
private SettlementMqService settlementMqService;
@Autowired
private OrderChildMqService orderChildMqService;
@Autowired
private OwnerInfoService ownerInfoService;
@Autowired
private BreakContractDriverRecordService breakContractDriverRecordService;
@Override @Override
public SaveOrderChildVO saveOrderChild(OrderChildSaveParam param) { public SaveOrderChildVO saveOrderChild(OrderChildSaveParam param) {
...@@ -906,7 +932,10 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -906,7 +932,10 @@ public class OrderChildServiceImpl implements OrderChildService {
} }
BigDecimal dif = param.getLoadNet().subtract(orderChild.getWeight()); 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.setLoadRough(param.getLoadRough());
orderChild.setLoadTare(param.getLoadTare()); orderChild.setLoadTare(param.getLoadTare());
orderChild.setLoadNet(param.getLoadNet()); orderChild.setLoadNet(param.getLoadNet());
...@@ -1188,6 +1217,14 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -1188,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; ...@@ -30,6 +30,8 @@ import com.clx.performance.param.app.OrderGoodsListPageParam;
import com.clx.performance.param.pc.OrderGoodsCancelParam; import com.clx.performance.param.pc.OrderGoodsCancelParam;
import com.clx.performance.param.pc.UpdateEditOrderGoodsParam; import com.clx.performance.param.pc.UpdateEditOrderGoodsParam;
import com.clx.performance.param.pc.UpdateOrderGoodsPriceParam; 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.OrderGoodsLogService;
import com.clx.performance.service.OrderGoodsService; import com.clx.performance.service.OrderGoodsService;
import com.clx.performance.struct.OrderGoodsStruct; import com.clx.performance.struct.OrderGoodsStruct;
...@@ -93,12 +95,15 @@ public class OrderGoodsServiceImpl implements OrderGoodsService { ...@@ -93,12 +95,15 @@ public class OrderGoodsServiceImpl implements OrderGoodsService {
private GoodsOrderTruckRecordComponent goodsOrderTruckRecordComponent; private GoodsOrderTruckRecordComponent goodsOrderTruckRecordComponent;
private OrderGoodsStatusLazyComponent orderGoodsStatusLazyComponent; private OrderGoodsStatusLazyComponent orderGoodsStatusLazyComponent;
private DriverService driverService; private DriverService driverService;
private OrderCancelComponent orderCancelComponent; private OrderCancelComponent orderCancelComponent;
private final OrderChildService orderChildService;
@Override @Override
public OrderGoodsVO getOrderGoodsInfoByOrderGoodsNoForPC(String orderGoodsNo) { public OrderGoodsVO getOrderGoodsInfoByOrderGoodsNoForPC(String orderGoodsNo) {
OrderGoodsVO orderGoodsVO = orderGoodsDao.getOrderGoodsInfoByOrderGoodsNoForPC(orderGoodsNo).map(orderGoodsStruct::convert).get(); OrderGoodsVO orderGoodsVO = orderGoodsDao.getOrderGoodsInfoByOrderGoodsNoForPC(orderGoodsNo).map(orderGoodsStruct::convert).get();
...@@ -402,6 +407,9 @@ public class OrderGoodsServiceImpl implements OrderGoodsService { ...@@ -402,6 +407,9 @@ public class OrderGoodsServiceImpl implements OrderGoodsService {
for (OrderGoodsTruckBind bind : getChildList) { for (OrderGoodsTruckBind bind : getChildList) {
if (!truckList.contains(bind.getTruckNo())) { if (!truckList.contains(bind.getTruckNo())) {
throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "当前取消的车辆已经接单,车牌号为:" + bind.getTruckNo()); throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "当前取消的车辆已经接单,车牌号为:" + bind.getTruckNo());
} else {
//已存在的记录不需要重新创建绑定记录
truckList.remove(bind.getTruckNo());
} }
} }
} }
...@@ -466,7 +474,7 @@ public class OrderGoodsServiceImpl implements OrderGoodsService { ...@@ -466,7 +474,7 @@ public class OrderGoodsServiceImpl implements OrderGoodsService {
List<OrderChild> orderChildList = null; List<OrderChild> orderChildList = null;
BigDecimal residueWeight = null; BigDecimal residueWeight = null;
BigDecimal sum = BigDecimal.ZERO; BigDecimal sum = BigDecimal.ZERO;
List<Integer> ids = new LinkedList<>(); List<String> childNoList = new LinkedList<>();
RollbackOrderWeightParam param = new RollbackOrderWeightParam(); RollbackOrderWeightParam param = new RollbackOrderWeightParam();
Integer cancelOperateType = goodsCancelParam.getCancelOperateType(); Integer cancelOperateType = goodsCancelParam.getCancelOperateType();
...@@ -511,12 +519,12 @@ public class OrderGoodsServiceImpl implements OrderGoodsService { ...@@ -511,12 +519,12 @@ public class OrderGoodsServiceImpl implements OrderGoodsService {
if (CollectionUtils.isNotEmpty(filterOrderChildList)) { if (CollectionUtils.isNotEmpty(filterOrderChildList)) {
for (OrderChild orderChild : filterOrderChildList) { for (OrderChild orderChild : filterOrderChildList) {
driverService.updateOrderStatus(orderChild.getDriverUserNo(), DriverInfoEnum.DriverStatus.NO.getCode(), orderChild.getTruckId(), 1); driverService.updateOrderStatus(orderChild.getDriverUserNo(), DriverInfoEnum.DriverStatus.NO.getCode(), orderChild.getTruckId(), 1);
ids.add(orderChild.getId()); childNoList.add(orderChild.getChildNo());
sum = sum.add(orderChild.getWeight()); sum = sum.add(orderChild.getWeight());
} }
orderChildDao.batchUpdateOrderChildStatus( orderChildDao.batchUpdateOrderChildStatus(
OrderChildEnum.Status.PLATFORM_CANCEL.getCode(), "系统取消", OrderChildEnum.Status.PLATFORM_CANCEL.getCode(), "系统取消",
now,now,ids); now,now,childNoList);
} }
orderChildList.removeAll(filterOrderChildList); orderChildList.removeAll(filterOrderChildList);
if (CollectionUtil.isNotEmpty(orderChildList)) { if (CollectionUtil.isNotEmpty(orderChildList)) {
...@@ -558,12 +566,12 @@ public class OrderGoodsServiceImpl implements OrderGoodsService { ...@@ -558,12 +566,12 @@ public class OrderGoodsServiceImpl implements OrderGoodsService {
for (OrderChild orderChild : filterOrderChildList) { for (OrderChild orderChild : filterOrderChildList) {
driverService.updateOrderStatus(orderChild.getDriverUserNo(), DriverInfoEnum.DriverStatus.NO.getCode(), orderChild.getTruckId(), 1); driverService.updateOrderStatus(orderChild.getDriverUserNo(), DriverInfoEnum.DriverStatus.NO.getCode(), orderChild.getTruckId(), 1);
ids.add(orderChild.getId()); childNoList.add(orderChild.getChildNo());
sum = sum.add(orderChild.getWeight()); sum = sum.add(orderChild.getWeight());
} }
orderChildDao.batchUpdateOrderChildStatus( orderChildDao.batchUpdateOrderChildStatus(
OrderChildEnum.Status.PLATFORM_CANCEL.getCode(),"系统取消", OrderChildEnum.Status.PLATFORM_CANCEL.getCode(),"系统取消",
now, now, ids); now, now, childNoList);
orderChildList.removeAll(filterOrderChildList); orderChildList.removeAll(filterOrderChildList);
if (CollectionUtil.isNotEmpty(orderChildList)) { if (CollectionUtil.isNotEmpty(orderChildList)) {
orderGoodsStatus = OrderGoodsStatusEnum.Status.COMPLETED.getCode(); orderGoodsStatus = OrderGoodsStatusEnum.Status.COMPLETED.getCode();
......
...@@ -129,17 +129,17 @@ public class OrderChildSqlProvider { ...@@ -129,17 +129,17 @@ public class OrderChildSqlProvider {
public String batchUpdateOrderChildStatus(@Param(value ="status") Integer status, @Param(value ="remark") String remark, 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 = "cancelTime") LocalDateTime cancelTime, @Param(value = "finishTime") LocalDateTime finishTime,
@Param(value = "ids") List<Integer> ids ){ @Param(value = "childNoList") List<String> childNoList ){
StringBuffer sqlList = new StringBuffer(); StringBuffer sqlList = new StringBuffer();
sqlList.append("update order_child set cancel_remark = '"+ remark +"' ,status = " + status + ",cancel_time = " sqlList.append("update order_child set cancel_remark = '"+ remark +"' ,status = " + status + ",cancel_time = "
+ cancelTime +",finish_time = " + finishTime + " where id in ("); + cancelTime +",finish_time = " + finishTime + " where child_no in (");
for (int i = 0; i < ids.size(); i++) { for (int i = 0; i < childNoList.size(); i++) {
Integer id = ids.get(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(","); sqlList.append(",");
} }
} }
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论