提交 f85afbc2 authored 作者: liuhaiquan's avatar liuhaiquan

Merge remote-tracking branch 'origin/test' into test

...@@ -84,7 +84,7 @@ public enum PerformanceResultEnum implements ResultEnum { ...@@ -84,7 +84,7 @@ public enum PerformanceResultEnum implements ResultEnum {
SETTLEMENT_NO_FOUND(1401, "结算单不存在"), SETTLEMENT_NO_FOUND(1401, "结算单不存在"),
MONEY_NO_SAME(1501, "货主提现金额和平台支付金额不一致"), MONEY_NO_SAME(1501, "货主提现金额和平台支付金额不一致"),
ORDER_CHILD_WEIGHT_NOT_EQ(1601, "磅单吨数和运单拉运吨数不一致") ORDER_GOODS_WEIGHT_NOT_HAVE(1601, "货单可拉运吨数不足")
; ;
private final int code; private final int code;
......
...@@ -13,12 +13,14 @@ import com.clx.performance.extranal.user.DriverService; ...@@ -13,12 +13,14 @@ 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.param.pc.OrderCancelParam; import com.clx.performance.param.pc.OrderCancelParam;
import com.clx.performance.service.IntegralMqService;
import com.clx.performance.service.OrderChildService; import com.clx.performance.service.OrderChildService;
import com.clx.performance.service.OrderGoodsTruckBindService; import com.clx.performance.service.OrderGoodsTruckBindService;
import com.clx.performance.service.breakcontract.BreakContractSettlementOwnerService; import com.clx.performance.service.breakcontract.BreakContractSettlementOwnerService;
import com.clx.user.enums.driver.DriverInfoEnum; import com.clx.user.enums.driver.DriverInfoEnum;
import com.msl.common.exception.ServiceSystemException; import com.msl.common.exception.ServiceSystemException;
import com.msl.common.result.Result; import com.msl.common.result.Result;
import com.msl.common.utils.DateUtils;
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;
...@@ -54,11 +56,15 @@ public class OrderCancelComponent implements InitializingBean { ...@@ -54,11 +56,15 @@ public class OrderCancelComponent implements InitializingBean {
public static Map<Integer, String> statusCodeMap = new HashMap<>(); public static Map<Integer, String> statusCodeMap = new HashMap<>();
private final IntegralMqService integralMqService;
public void ownerProcess(OrderCancelParam param) { public void ownerProcess(OrderCancelParam param) {
String orderNo = param.getOrderNo(); String orderNo = param.getOrderNo();
List<OrderGoods> orderGoodsList = null; List<OrderGoods> orderGoodsList = null;
Integer orderStatusCode = OrderEnum.Status.CANCELED.getCode(); Integer orderStatusCode = OrderEnum.Status.CANCELED.getCode();
LocalDateTime now = LocalDateTime.now(); String now = DateUtils.formatDateTime(LocalDateTime.now(), "yyyy-MM-dd HH:mm:ss").get();
List<String> childNoList = new LinkedList<>();
switch (param.getCancelType()) { switch (param.getCancelType()) {
case 1: //单纯取消订单 case 1: //单纯取消订单
log.info("1:货主单纯取消订单"); log.info("1:货主单纯取消订单");
...@@ -110,20 +116,19 @@ public class OrderCancelComponent implements InitializingBean { ...@@ -110,20 +116,19 @@ 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<>();
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));
...@@ -169,7 +174,9 @@ public class OrderCancelComponent implements InitializingBean { ...@@ -169,7 +174,9 @@ public class OrderCancelComponent implements InitializingBean {
if (!orderFeign.updateOrderStatusByOrderNo(orderNo, orderStatusCode).succeed()) { if (!orderFeign.updateOrderStatusByOrderNo(orderNo, orderStatusCode).succeed()) {
throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "货主取消订单失败,原因:远程调用取消订单失败"); throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "货主取消订单失败,原因:远程调用取消订单失败");
} }
for (String childNo : childNoList) {
integralMqService.orderChildFinish(childNo);
}
} }
...@@ -269,6 +276,7 @@ public class OrderCancelComponent implements InitializingBean { ...@@ -269,6 +276,7 @@ public class OrderCancelComponent implements InitializingBean {
} }
@Override @Override
public void afterPropertiesSet() throws Exception { public void afterPropertiesSet() throws Exception {
statusCodeMap.put(OrderEnum.Status.QUOTATION_CONFIRMED.getCode(), OrderEnum.Status.QUOTATION_CONFIRMED.getName()); statusCodeMap.put(OrderEnum.Status.QUOTATION_CONFIRMED.getCode(), OrderEnum.Status.QUOTATION_CONFIRMED.getName());
......
...@@ -15,13 +15,16 @@ import com.clx.performance.enums.TruckDemandEnum; ...@@ -15,13 +15,16 @@ 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;
import com.msl.common.utils.DateUtils;
import com.xxl.job.core.handler.annotation.XxlJob; 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 +59,7 @@ public class OrderGoodsStatusLazyComponent implements InitializingBean { ...@@ -56,6 +59,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());
...@@ -168,7 +172,7 @@ public class OrderGoodsStatusLazyComponent implements InitializingBean { ...@@ -168,7 +172,7 @@ public class OrderGoodsStatusLazyComponent implements InitializingBean {
public void consumingLastArriveSendTime() { public void consumingLastArriveSendTime() {
log.info("货单-最晚到达货源地时间-定时器启动"); log.info("货单-最晚到达货源地时间-定时器启动");
long nowTimeMillis = System.currentTimeMillis(); long nowTimeMillis = System.currentTimeMillis();
LocalDateTime now = LocalDateTime.now(); String now = DateUtils.formatDateTime(LocalDateTime.now(), "yyyy-MM-dd HH:mm:ss").get();
Set<ZSetOperations.TypedTuple<String>> orderGoodsIds = redisTemplate.opsForZSet().rangeByScoreWithScores( Set<ZSetOperations.TypedTuple<String>> orderGoodsIds = redisTemplate.opsForZSet().rangeByScoreWithScores(
RedisConstants.ORDER_GOODS_STATUS_LAZY_LAST_ARRIVE_SEND_TIME, RedisConstants.ORDER_GOODS_STATUS_LAZY_LAST_ARRIVE_SEND_TIME,
0, nowTimeMillis //延时任务score最小值 0, nowTimeMillis //延时任务score最小值
...@@ -201,20 +205,20 @@ public class OrderGoodsStatusLazyComponent implements InitializingBean { ...@@ -201,20 +205,20 @@ 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(DateUtils.parseDateTime(now).get());
orderChild.setFinishTime(now); orderChild.setFinishTime(DateUtils.parseDateTime(now).get());
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 +250,8 @@ public class OrderGoodsStatusLazyComponent implements InitializingBean { ...@@ -246,6 +250,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, String cancelTime, String 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, String cancelTime, String finishTime, List<String> childNoList) {
baseMapper.updateOrderGoodsSetResidueWeight(status,remark, cancelTime, finishTime, ids); baseMapper.updateOrderGoodsSetResidueWeight(status,remark, cancelTime, finishTime, childNoList);
} }
@Override @Override
......
...@@ -49,6 +49,6 @@ public interface OrderChildMapper extends BaseMapper<OrderChild> { ...@@ -49,6 +49,6 @@ 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") String cancelTime, @Param(value = "finishTime") String 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);
} }
...@@ -27,6 +27,7 @@ import com.clx.user.enums.driver.DriverInfoEnum; ...@@ -27,6 +27,7 @@ import com.clx.user.enums.driver.DriverInfoEnum;
import com.msl.common.enums.ResultEnum; import com.msl.common.enums.ResultEnum;
import com.msl.common.exception.ServiceSystemException; import com.msl.common.exception.ServiceSystemException;
import com.msl.common.result.Result; import com.msl.common.result.Result;
import com.msl.common.utils.DateUtils;
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.AllArgsConstructor;
...@@ -73,7 +74,7 @@ public class OrderCancelServiceImpl implements OrderCancelService { ...@@ -73,7 +74,7 @@ public class OrderCancelServiceImpl implements OrderCancelService {
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void ownerConfirmCancelOrderPre(String orderNo) { public void ownerConfirmCancelOrderPre(String orderNo) {
LocalDateTime now = LocalDateTime.now(); String now = DateUtils.formatDateTime(LocalDateTime.now(), "yyyy-MM-dd HH:mm:ss").get();
List<OrderGoods> orderGoodsList = orderGoodsDao.getOrderGoodsListByOrderNo(orderNo); List<OrderGoods> orderGoodsList = orderGoodsDao.getOrderGoodsListByOrderNo(orderNo);
Integer orderStatusCode = OrderEnum.Status.CANCELED.getCode(); Integer orderStatusCode = OrderEnum.Status.CANCELED.getCode();
if (CollectionUtil.isEmpty(orderGoodsList)) { if (CollectionUtil.isEmpty(orderGoodsList)) {
...@@ -86,7 +87,7 @@ public class OrderCancelServiceImpl implements OrderCancelService { ...@@ -86,7 +87,7 @@ public class OrderCancelServiceImpl implements OrderCancelService {
ThawAccountParam thawAccountParam = new ThawAccountParam(); ThawAccountParam thawAccountParam = new ThawAccountParam();
thawAccountParam.setOrderNo(orderNo); thawAccountParam.setOrderNo(orderNo);
thawAccountParam.setOrderType(OwnerAccountEnum.OrderChildTypeStatus.NETWORK.getCode()); thawAccountParam.setOrderType(OwnerAccountEnum.OrderChildTypeStatus.ORDINARY.getCode());
log.info("执行解冻账户,参数:{}", JSONUtil.parse(thawAccountParam)); log.info("执行解冻账户,参数:{}", JSONUtil.parse(thawAccountParam));
ownerAccountService.ownerAccountThaw(thawAccountParam); ownerAccountService.ownerAccountThaw(thawAccountParam);
this.ownerConfirmCancelProcess(orderNo); this.ownerConfirmCancelProcess(orderNo);
...@@ -112,17 +113,17 @@ public class OrderCancelServiceImpl implements OrderCancelService { ...@@ -112,17 +113,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();
} }
...@@ -170,7 +171,7 @@ public class OrderCancelServiceImpl implements OrderCancelService { ...@@ -170,7 +171,7 @@ public class OrderCancelServiceImpl implements OrderCancelService {
ThawAccountParam thawAccountParam = new ThawAccountParam(); ThawAccountParam thawAccountParam = new ThawAccountParam();
thawAccountParam.setOrderNo(orderNo); thawAccountParam.setOrderNo(orderNo);
thawAccountParam.setOrderType(OwnerAccountEnum.OrderChildTypeStatus.NETWORK.getCode()); thawAccountParam.setOrderType(OwnerAccountEnum.OrderChildTypeStatus.ORDINARY.getCode());
log.info("执行解冻账户,参数:{}", JSONUtil.parse(thawAccountParam)); log.info("执行解冻账户,参数:{}", JSONUtil.parse(thawAccountParam));
ownerAccountService.ownerAccountThaw(thawAccountParam); ownerAccountService.ownerAccountThaw(thawAccountParam);
...@@ -329,7 +330,7 @@ public class OrderCancelServiceImpl implements OrderCancelService { ...@@ -329,7 +330,7 @@ public class OrderCancelServiceImpl implements OrderCancelService {
ThawAccountParam thawAccountParam = new ThawAccountParam(); ThawAccountParam thawAccountParam = new ThawAccountParam();
thawAccountParam.setOrderNo(orderNo); thawAccountParam.setOrderNo(orderNo);
thawAccountParam.setOrderType(OwnerAccountEnum.OrderChildTypeStatus.NETWORK.getCode()); thawAccountParam.setOrderType(OwnerAccountEnum.OrderChildTypeStatus.ORDINARY.getCode());
log.info("执行解冻账户,参数:{}", JSONUtil.parse(thawAccountParam)); log.info("执行解冻账户,参数:{}", JSONUtil.parse(thawAccountParam));
ownerAccountService.ownerAccountThaw(thawAccountParam); ownerAccountService.ownerAccountThaw(thawAccountParam);
...@@ -352,7 +353,7 @@ public class OrderCancelServiceImpl implements OrderCancelService { ...@@ -352,7 +353,7 @@ public class OrderCancelServiceImpl implements OrderCancelService {
String orderNo = param.getOrderNo(); String orderNo = param.getOrderNo();
List<OrderGoods> orderGoodsList = null; List<OrderGoods> orderGoodsList = null;
Integer orderStatusCode = OrderEnum.Status.CANCELED.getCode(); Integer orderStatusCode = OrderEnum.Status.CANCELED.getCode();
LocalDateTime now = LocalDateTime.now(); String now = DateUtils.formatDateTime(LocalDateTime.now(), "yyyy-MM-dd HH:mm:ss").get();
switch (param.getCancelType()) { switch (param.getCancelType()) {
case 1: //单纯取消订单 case 1: //单纯取消订单
if (CollectionUtil.isNotEmpty(orderChildDao.getOrderChildByOrderNo(orderNo))) { if (CollectionUtil.isNotEmpty(orderChildDao.getOrderChildByOrderNo(orderNo))) {
...@@ -402,16 +403,16 @@ public class OrderCancelServiceImpl implements OrderCancelService { ...@@ -402,16 +403,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);
...@@ -462,7 +463,7 @@ public class OrderCancelServiceImpl implements OrderCancelService { ...@@ -462,7 +463,7 @@ public class OrderCancelServiceImpl implements OrderCancelService {
//TODO 注意判断普通单还是网运单 普通单类型 1 网运单 2 //TODO 注意判断普通单还是网运单 普通单类型 1 网运单 2
ThawAccountParam thawAccountParam = new ThawAccountParam(); ThawAccountParam thawAccountParam = new ThawAccountParam();
thawAccountParam.setOrderNo(orderNo); thawAccountParam.setOrderNo(orderNo);
thawAccountParam.setOrderType(OwnerAccountEnum.OrderChildTypeStatus.NETWORK.getCode()); thawAccountParam.setOrderType(OwnerAccountEnum.OrderChildTypeStatus.ORDINARY.getCode());
log.info("执行解冻账户,参数:{}", JSONUtil.parse(thawAccountParam)); log.info("执行解冻账户,参数:{}", JSONUtil.parse(thawAccountParam));
ownerAccountService.ownerAccountThaw(thawAccountParam); ownerAccountService.ownerAccountThaw(thawAccountParam);
......
...@@ -95,11 +95,6 @@ public class OrderChildPoundAuditServiceImpl implements OrderChildPoundAuditSer ...@@ -95,11 +95,6 @@ public class OrderChildPoundAuditServiceImpl implements OrderChildPoundAuditSer
BigDecimal dif = param.getLoadNet().subtract(orderChild.getLoadNet()); BigDecimal dif = param.getLoadNet().subtract(orderChild.getLoadNet());
if (dif.compareTo(BigDecimal.ZERO) != 0) {
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_WEIGHT_NOT_EQ);
}
Integer type = OrderChildLogEnum.Type.POUND_AUDIT.getCode(); Integer type = OrderChildLogEnum.Type.POUND_AUDIT.getCode();
if(Objects.equals(param.getStatus(), OrderChildPoundAuditEnum.Status.REJECT.getCode())){ if(Objects.equals(param.getStatus(), OrderChildPoundAuditEnum.Status.REJECT.getCode())){
type = OrderChildLogEnum.Type.POUND_AUDIT_REJECT.getCode(); type = OrderChildLogEnum.Type.POUND_AUDIT_REJECT.getCode();
...@@ -144,11 +139,18 @@ public class OrderChildPoundAuditServiceImpl implements OrderChildPoundAuditSer ...@@ -144,11 +139,18 @@ public class OrderChildPoundAuditServiceImpl implements OrderChildPoundAuditSer
* 装车补偿 * 装车补偿
*/ */
private void updateOrderGoodsAmountLoad(OrderGoods orderGoods, BigDecimal dif){ private void updateOrderGoodsAmountLoad(OrderGoods orderGoods, BigDecimal dif){
if (dif.compareTo(BigDecimal.ZERO) == 0){return;} int i = dif.compareTo(BigDecimal.ZERO);
if (i == 0){
return;
} else if (i > 0) {
if (orderGoods.getResidueTransportWeight().compareTo(dif) < 0) {
throw new ServiceSystemException(PerformanceResultEnum.ORDER_GOODS_WEIGHT_NOT_HAVE);
}
}
int count = orderChildDao.countValidByOrderGoodsNo(orderGoods.getOrderGoodsNo())-1; int count = orderChildDao.countValidByOrderGoodsNo(orderGoods.getOrderGoodsNo())-1;
Integer status = orderGoods.getOrderGoodsStatus(); Integer status;
if (count == 0){ if (count == 0){
status = OrderGoodsStatusEnum.Status.PAYING.getCode(); status = OrderGoodsStatusEnum.Status.PAYING.getCode();
} }
......
...@@ -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) {
...@@ -1188,6 +1214,14 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -1188,6 +1214,14 @@ public class OrderChildServiceImpl implements OrderChildService {
} }
@Override
public void orderChildFinish(String childNo){
// 运单结束 统计积分
integralMqService.orderChildFinish(childNo);
}
/** /**
* 生成计费单 * 生成计费单
*/ */
...@@ -1358,11 +1392,15 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -1358,11 +1392,15 @@ public class OrderChildServiceImpl implements OrderChildService {
* 装车补偿 * 装车补偿
*/ */
private void updateOrderGoodsAmountLoad(OrderGoods orderGoods, BigDecimal dif) { private void updateOrderGoodsAmountLoad(OrderGoods orderGoods, BigDecimal dif) {
if (dif.compareTo(BigDecimal.ZERO) == 0) { int i = dif.compareTo(BigDecimal.ZERO);
if (i == 0){
return; return;
} else if (i > 0) {
if (orderGoods.getResidueTransportWeight().compareTo(dif) < 0) {
throw new ServiceSystemException(PerformanceResultEnum.ORDER_GOODS_WEIGHT_NOT_HAVE);
}
} }
Integer status = OrderGoodsStatusEnum.Status.GO_TO_SEND.getCode(); Integer status = OrderGoodsStatusEnum.Status.GO_TO_SEND.getCode();
orderGoodsService.updateOrderGoodsReduceWeightAndStatusAmountLoad(orderGoods, dif, status); orderGoodsService.updateOrderGoodsReduceWeightAndStatusAmountLoad(orderGoods, dif, status);
......
...@@ -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 IntegralMqService integralMqService;
@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();
...@@ -132,6 +137,9 @@ public class OrderGoodsServiceImpl implements OrderGoodsService { ...@@ -132,6 +137,9 @@ public class OrderGoodsServiceImpl implements OrderGoodsService {
if (orderGoods.getOrderGoodsStatus().equals(OrderGoodsStatusEnum.Status.CANCEL.getCode()) if (orderGoods.getOrderGoodsStatus().equals(OrderGoodsStatusEnum.Status.CANCEL.getCode())
|| orderGoods.getOrderGoodsStatus().equals(OrderGoodsStatusEnum.Status.COMPLETED.getCode()) || orderGoods.getOrderGoodsStatus().equals(OrderGoodsStatusEnum.Status.COMPLETED.getCode())
) { ) {
if (orderChildWeight.compareTo(BigDecimal.ZERO) < 0) {
orderChildWeight = orderChildWeight.negate();
}
//当前订单已经取消或完结 //当前订单已经取消或完结
orderCancelComponent.backFillTonnage(orderGoods, orderChildWeight); orderCancelComponent.backFillTonnage(orderGoods, orderChildWeight);
} else { } else {
...@@ -402,6 +410,9 @@ public class OrderGoodsServiceImpl implements OrderGoodsService { ...@@ -402,6 +410,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());
} }
} }
} }
...@@ -462,11 +473,11 @@ public class OrderGoodsServiceImpl implements OrderGoodsService { ...@@ -462,11 +473,11 @@ public class OrderGoodsServiceImpl implements OrderGoodsService {
public void orderGoodsCancel(OrderGoodsCancelParam goodsCancelParam) { public void orderGoodsCancel(OrderGoodsCancelParam goodsCancelParam) {
String orderGoodsNo = goodsCancelParam.getOrderGoodsNo(); String orderGoodsNo = goodsCancelParam.getOrderGoodsNo();
OrderGoods orderGoods = orderGoodsDao.getByOrderGoodsNo(orderGoodsNo).orElseThrow(PerformanceResultEnum.HTTP_ERROR, "数据错误"); OrderGoods orderGoods = orderGoodsDao.getByOrderGoodsNo(orderGoodsNo).orElseThrow(PerformanceResultEnum.HTTP_ERROR, "数据错误");
LocalDateTime now = LocalDateTime.now(); String now = DateUtils.formatDateTime(LocalDateTime.now(), "yyyy-MM-dd HH:mm:ss").get();
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 +522,12 @@ public class OrderGoodsServiceImpl implements OrderGoodsService { ...@@ -511,12 +522,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 +569,12 @@ public class OrderGoodsServiceImpl implements OrderGoodsService { ...@@ -558,12 +569,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();
...@@ -607,6 +618,9 @@ public class OrderGoodsServiceImpl implements OrderGoodsService { ...@@ -607,6 +618,9 @@ public class OrderGoodsServiceImpl implements OrderGoodsService {
orderFeign.orderCancelReason(orderCancelReasonParam); orderFeign.orderCancelReason(orderCancelReasonParam);
for (String childNo : childNoList) {
integralMqService.orderChildFinish(childNo);
}
orderGoodsLogService.saveLog(orderGoodsNo, loginUserInfo.getUserNo(), loginUserInfo.getUserName(), OrderGoodsLogsEnum.Type.CANCEL.getName(), ""); orderGoodsLogService.saveLog(orderGoodsNo, loginUserInfo.getUserNo(), loginUserInfo.getUserName(), OrderGoodsLogsEnum.Type.CANCEL.getName(), "");
} }
......
...@@ -250,7 +250,6 @@ public class TruckServiceImpl implements TruckService { ...@@ -250,7 +250,6 @@ public class TruckServiceImpl implements TruckService {
private Map<String,Integer> getTruckStatusMap(){ private Map<String,Integer> getTruckStatusMap(){
//查询平台所有车辆的出车状态信息 //查询平台所有车辆的出车状态信息
Result<List<TruckUseStatusVO>> result = userClxFeign.getPlatformTruckStatus(); Result<List<TruckUseStatusVO>> result = userClxFeign.getPlatformTruckStatus();
log.info("通过clx-user服务获取平台认证成功车辆出车状态列表,返回结果:{}", JSON.toJSONString(result));
if(!Objects.equals(result.getCode(), ResultCodeEnum.SUCCESS.getCode())){ if(!Objects.equals(result.getCode(), ResultCodeEnum.SUCCESS.getCode())){
throw new ServiceSystemException(ResultEnum.DATA_NOT_FIND,"查询车辆出车状态信息失败"); throw new ServiceSystemException(ResultEnum.DATA_NOT_FIND,"查询车辆出车状态信息失败");
......
...@@ -54,9 +54,10 @@ public class BreakContractSettlementDriverDetailServiceImpl implements BreakCon ...@@ -54,9 +54,10 @@ public class BreakContractSettlementDriverDetailServiceImpl implements BreakCon
List<ExcelField> fieldList = new ArrayList<>(); List<ExcelField> fieldList = new ArrayList<>();
fieldList.add(new ExcelField(0, "序号", "index", 2000)); fieldList.add(new ExcelField(0, "序号", "index", 2000));
fieldList.add(new ExcelField(1, "违约单号", "breakNo", 5000)); fieldList.add(new ExcelField(1, "违约单号", "breakNo", 5000));
fieldList.add(new ExcelField(2, "车主编码", "truckOwnUserNo", 5000)); fieldList.add(new ExcelField(2, "运单编号", "childNo", 5000));
fieldList.add(new ExcelField(3, "车主名称", "truckOwnUserName", 5000)); fieldList.add(new ExcelField(3, "车主编码", "truckOwnUserNo", 5000));
fieldList.add(new ExcelField(4, "运单编号", "childNo", 5000)); fieldList.add(new ExcelField(4, "车主名称", "truckOwnUserName", 5000));
fieldList.add(new ExcelField(5, "司机名称", "driverName", 5000)); fieldList.add(new ExcelField(5, "司机名称", "driverName", 5000));
fieldList.add(new ExcelField(6, "违约方", "breakContractPartyType", 5000)); fieldList.add(new ExcelField(6, "违约方", "breakContractPartyType", 5000));
...@@ -74,9 +75,10 @@ public class BreakContractSettlementDriverDetailServiceImpl implements BreakCon ...@@ -74,9 +75,10 @@ public class BreakContractSettlementDriverDetailServiceImpl implements BreakCon
rowData.add(new ExcelData(i+1)); rowData.add(new ExcelData(i+1));
rowData.add(new ExcelData(dto.getBreakNo())); rowData.add(new ExcelData(dto.getBreakNo()));
rowData.add(new ExcelData(dto.getChildNo()));
rowData.add(new ExcelData(dto.getTruckOwnUserNo()+"")); rowData.add(new ExcelData(dto.getTruckOwnUserNo()+""));
rowData.add(new ExcelData(dto.getTruckOwnName())); rowData.add(new ExcelData(dto.getTruckOwnName()));
rowData.add(new ExcelData(dto.getChildNo()));
rowData.add(new ExcelData(dto.getDriverName())); rowData.add(new ExcelData(dto.getDriverName()));
rowData.add(new ExcelData(dto.getBreakContractPartyTypeMsg())); rowData.add(new ExcelData(dto.getBreakContractPartyTypeMsg()));
......
...@@ -57,15 +57,16 @@ public class BreakContractSettlementDriverServiceImpl implements BreakContractSe ...@@ -57,15 +57,16 @@ public class BreakContractSettlementDriverServiceImpl implements BreakContractSe
fieldList.add(new ExcelField(1, "结算单号", "settlementNo", 5000)); fieldList.add(new ExcelField(1, "结算单号", "settlementNo", 5000));
fieldList.add(new ExcelField(2, "运单编号", "childNo", 5000)); fieldList.add(new ExcelField(2, "运单编号", "childNo", 5000));
fieldList.add(new ExcelField(3, "车主编号", "truckOwnerNo", 5000)); fieldList.add(new ExcelField(3, "车主编号", "truckOwnerNo", 5000));
fieldList.add(new ExcelField(4, "车主名称", "truckOwnerName", 5000));
fieldList.add(new ExcelField(4, "司机名称", "driverName", 5000)); fieldList.add(new ExcelField(5, "司机名称", "driverName", 5000));
fieldList.add(new ExcelField(5, "违约方", "breakContractPartyType", 5000)); fieldList.add(new ExcelField(6, "违约方", "breakContractPartyType", 5000));
fieldList.add(new ExcelField(6, "违约金额", "figure", 5000)); fieldList.add(new ExcelField(7, "违约金额", "figure", 5000));
fieldList.add(new ExcelField(7, "创建人", "createName", 5000)); fieldList.add(new ExcelField(8, "创建人", "createName", 5000));
fieldList.add(new ExcelField(8, "创建时间", "createTime", 5000)); fieldList.add(new ExcelField(9, "创建时间", "createTime", 5000));
fieldList.add(new ExcelField(9, "结算平台", "settlePlatform", 5000)); fieldList.add(new ExcelField(10, "结算平台", "settlePlatform", 5000));
fieldList.add(new ExcelField(9, "结算状态", "settleStatus", 5000)); fieldList.add(new ExcelField(11, "结算状态", "settleStatus", 5000));
fieldList.add(new ExcelField(9, "结算时间", "settleTime", 5000)); fieldList.add(new ExcelField(12, "结算时间", "settleTime", 5000));
// 组装数据 // 组装数据
List<List<ExcelData>> dataList = new ArrayList<>(); List<List<ExcelData>> dataList = new ArrayList<>();
...@@ -78,6 +79,7 @@ public class BreakContractSettlementDriverServiceImpl implements BreakContractSe ...@@ -78,6 +79,7 @@ public class BreakContractSettlementDriverServiceImpl implements BreakContractSe
rowData.add(new ExcelData(dto.getSettlementNo())); rowData.add(new ExcelData(dto.getSettlementNo()));
rowData.add(new ExcelData(dto.getChildNo())); rowData.add(new ExcelData(dto.getChildNo()));
rowData.add(new ExcelData(dto.getTruckOwnUserNo()+"")); rowData.add(new ExcelData(dto.getTruckOwnUserNo()+""));
rowData.add(new ExcelData(dto.getTruckOwnName()));
rowData.add(new ExcelData(dto.getDriverName())); rowData.add(new ExcelData(dto.getDriverName()));
rowData.add(new ExcelData(dto.getBreakContractPartyTypeMsg())); rowData.add(new ExcelData(dto.getBreakContractPartyTypeMsg()));
......
...@@ -465,7 +465,8 @@ public class BreakContractSettlementOwnerServiceImpl implements BreakContractSe ...@@ -465,7 +465,8 @@ public class BreakContractSettlementOwnerServiceImpl implements BreakContractSe
if(Objects.equals(orderChild.getStatus(),OrderChildEnum.Status.CREATED.getCode()) if(Objects.equals(orderChild.getStatus(),OrderChildEnum.Status.CREATED.getCode())
|| Objects.equals(orderChild.getStatus(),OrderChildEnum.Status.PAY.getCode()) || Objects.equals(orderChild.getStatus(),OrderChildEnum.Status.PAY.getCode())
|| Objects.equals(orderChild.getStatus(),OrderChildEnum.Status.GO_TO_SEND.getCode())) { || Objects.equals(orderChild.getStatus(),OrderChildEnum.Status.GO_TO_SEND.getCode())
|| Objects.equals(orderChild.getStatus(),OrderChildEnum.Status.OWNER_CANCEL.getCode())) {
cancelWeight = cancelWeight.add(orderChild.getWeight()); cancelWeight = cancelWeight.add(orderChild.getWeight());
seconds = seconds.add(new BigDecimal(LocalDateTimeUtils.getSecondsDiff(orderChild.getPayTime(),now))); seconds = seconds.add(new BigDecimal(LocalDateTimeUtils.getSecondsDiff(orderChild.getPayTime(),now)));
} }
...@@ -477,7 +478,7 @@ public class BreakContractSettlementOwnerServiceImpl implements BreakContractSe ...@@ -477,7 +478,7 @@ public class BreakContractSettlementOwnerServiceImpl implements BreakContractSe
BigDecimal baseFigure = totalFreight.multiply(orderCancelRule.getAfterRatio()).multiply(cancelWeight) BigDecimal baseFigure = totalFreight.multiply(orderCancelRule.getAfterRatio()).multiply(cancelWeight)
.divide(transportWeight,2, BigDecimal.ROUND_HALF_UP); .divide(transportWeight,2, BigDecimal.ROUND_HALF_UP);
BigDecimal truckFigure = BigDecimal.ZERO; BigDecimal truckFigure = BigDecimal.ZERO;
if(Objects.equals(cancelType,CancelOrderEnum.Type.NOT_ARRIVE)){ if(Objects.equals(cancelType,CancelOrderEnum.Type.NOT_ARRIVE.getCode())){
truckFigure = seconds.multiply(orderCancelRule.getAfterFigurePerHour()) truckFigure = seconds.multiply(orderCancelRule.getAfterFigurePerHour())
.divide(new BigDecimal(3600),2, BigDecimal.ROUND_HALF_UP); .divide(new BigDecimal(3600),2, BigDecimal.ROUND_HALF_UP);
} }
......
...@@ -128,18 +128,18 @@ public class OrderChildSqlProvider { ...@@ -128,18 +128,18 @@ 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") String cancelTime, @Param(value = "finishTime") String 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 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论