提交 45e50b38 authored 作者: liruixin's avatar liruixin

Merge branch 'v5.7_break_contract_reverse_20231020' into test

package com.clx.performance.param.pc;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@Data
public class ArtificialCancelOrderParam {
@NotNull(message = "运单编号不能为空")
@ApiModelProperty("运单编号")
private String orderChildNo;
@ApiModelProperty("取消原因")
private String remark;
}
...@@ -170,4 +170,7 @@ public class OrderChildVO { ...@@ -170,4 +170,7 @@ public class OrderChildVO {
return OrderChildEnum.Status.getByCode(status).get().getName(); return OrderChildEnum.Status.getByCode(status).get().getName();
} }
@ApiModelProperty("货物类型名称")
public String goodTypeName;
} }
\ No newline at end of file
...@@ -2,6 +2,7 @@ package com.clx.performance.controller.pc; ...@@ -2,6 +2,7 @@ package com.clx.performance.controller.pc;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.param.pc.ArtificialCancelOrderParam;
import com.clx.performance.param.pc.OrderCancelParam; import com.clx.performance.param.pc.OrderCancelParam;
import com.clx.performance.param.pc.PageOrderGoodsListParam; import com.clx.performance.param.pc.PageOrderGoodsListParam;
import com.clx.performance.service.OrderCancelService; import com.clx.performance.service.OrderCancelService;
...@@ -52,9 +53,9 @@ public class OrderCancelController { ...@@ -52,9 +53,9 @@ public class OrderCancelController {
} }
@ApiOperation(value = "客服取消运单", notes = "<br>By:胡宇帆") @ApiOperation(value = "客服取消运单", notes = "<br>By:胡宇帆")
@GetMapping("/artificialCancelOrder") @PostMapping("/artificialCancelOrder")
public Result<Object> artificialCancelOrder(@RequestParam(value = "orderChildNo") String orderChildNo, @RequestParam(value = "remark") String remark) { public Result<Object> artificialCancelOrder(@RequestBody ArtificialCancelOrderParam param) {
orderCancelService.artificialCancelOrder(orderChildNo, remark); orderCancelService.artificialCancelOrder(param.getOrderChildNo(), param.getRemark());
return Result.ok(); return Result.ok();
} }
......
...@@ -697,12 +697,25 @@ public class OrderCancelServiceImpl implements OrderCancelService { ...@@ -697,12 +697,25 @@ public class OrderCancelServiceImpl implements OrderCancelService {
@Override @Override
public OrderChildVO findArtificialCancelOrder(String orderChildNo) { public OrderChildVO findArtificialCancelOrder(String orderChildNo) {
return orderChildDao.findArtificialCancelOrder(orderChildNo); OrderChildVO artificialCancelOrder = orderChildDao.findArtificialCancelOrder(orderChildNo);
FeignOrderVO orderInfoFeign = orderFeign.getOrderInfoFeign(artificialCancelOrder.getOrderNo());
if (orderInfoFeign != null) {
artificialCancelOrder.setGoodTypeName(orderInfoFeign.getGoodsTypeName());
}
return artificialCancelOrder;
} }
@Override @Override
public IPage<OrderChildVO> orderChildCancelRecord(PageParam pageParam) { public IPage<OrderChildVO> orderChildCancelRecord(PageParam pageParam) {
return orderChildDao.orderChildCancelRecord(pageParam); IPage<OrderChildVO> page = orderChildDao.orderChildCancelRecord(pageParam);
if (!page.getRecords().isEmpty()) {
String orderNo = page.getRecords().get(0).getOrderNo();
FeignOrderVO orderInfoFeign = orderFeign.getOrderInfoFeign(orderNo);
for (OrderChildVO record : page.getRecords()) {
record.setGoodTypeName(orderInfoFeign.getGoodsTypeName());
}
}
return page;
} }
......
...@@ -426,13 +426,18 @@ public class BreakContractSettlementOwnerServiceImpl implements BreakContractSe ...@@ -426,13 +426,18 @@ public class BreakContractSettlementOwnerServiceImpl implements BreakContractSe
BreakContractOwnerRuleVO.AutoRule autoRule = JSONObject.parseObject(autoRuleJson, BreakContractOwnerRuleVO.AutoRule.class); BreakContractOwnerRuleVO.AutoRule autoRule = JSONObject.parseObject(autoRuleJson, BreakContractOwnerRuleVO.AutoRule.class);
BreakContractOwnerRuleVO.OrderCancelRule orderCancelRule = autoRule.getOrderCancelRule();//订单取消规则 BreakContractOwnerRuleVO.OrderCancelRule orderCancelRule = autoRule.getOrderCancelRule();//订单取消规则
//运单状态(不包括取消) //运单状态(包括货主取消)
List<Integer> statusList = Arrays.asList( List<Integer> statusList = Arrays.asList(
new Integer[]{OrderChildEnum.Status.CREATED.getCode(), OrderChildEnum.Status.PAY.getCode(), new Integer[]{OrderChildEnum.Status.CREATED.getCode(), OrderChildEnum.Status.PAY.getCode(),
OrderChildEnum.Status.GO_TO_SEND.getCode(), OrderChildEnum.Status.ARRIVE_SEND.getCode(), OrderChildEnum.Status.GO_TO_SEND.getCode(), OrderChildEnum.Status.ARRIVE_SEND.getCode(),
OrderChildEnum.Status.LOAD.getCode(), OrderChildEnum.Status.GO_TO_RECEIVE.getCode(), OrderChildEnum.Status.LOAD.getCode(), OrderChildEnum.Status.GO_TO_RECEIVE.getCode(),
OrderChildEnum.Status.ARRIVE_RECEIVE.getCode(), OrderChildEnum.Status.UNLOAD.getCode(), OrderChildEnum.Status.ARRIVE_RECEIVE.getCode(), OrderChildEnum.Status.UNLOAD.getCode(),
OrderChildEnum.Status.OWNER_CANCEL.getCode(),OrderChildEnum.Status.UNSETTLE.getCode()}); OrderChildEnum.Status.UNSETTLE.getCode()});
//由于已经更新了订单状态为货主取消了
if(Objects.equals(cancelType,CancelOrderEnum.Type.NOT_ARRIVE.getCode())){
statusList.add(OrderChildEnum.Status.OWNER_CANCEL.getCode());
}
BigDecimal figure ;//总费用 BigDecimal figure ;//总费用
...@@ -445,7 +450,6 @@ public class BreakContractSettlementOwnerServiceImpl implements BreakContractSe ...@@ -445,7 +450,6 @@ public class BreakContractSettlementOwnerServiceImpl implements BreakContractSe
List<OrderChild> orderChilds = orderChildDao.listOrderChildByOrderNoAndStatus(orderNo, statusList); List<OrderChild> orderChilds = orderChildDao.listOrderChildByOrderNoAndStatus(orderNo, statusList);
LocalDateTime now = LocalDateTime.now();//当前时间
//没有司机拉运 //没有司机拉运
if(CollectionUtils.isEmpty(orderChilds)){ if(CollectionUtils.isEmpty(orderChilds)){
figure = transportWeight.multiply(validFreightPrice).multiply(orderCancelRule.getAfterRatio()); figure = transportWeight.multiply(validFreightPrice).multiply(orderCancelRule.getAfterRatio());
...@@ -463,25 +467,33 @@ public class BreakContractSettlementOwnerServiceImpl implements BreakContractSe ...@@ -463,25 +467,33 @@ public class BreakContractSettlementOwnerServiceImpl implements BreakContractSe
deliveredFreight = deliveredFreight.add(orderChild.getOrderFreightPrice().multiply(orderChild.getLoadNet())); deliveredFreight = deliveredFreight.add(orderChild.getOrderFreightPrice().multiply(orderChild.getLoadNet()));
} }
if(Objects.equals(cancelType,CancelOrderEnum.Type.NOT_ARRIVE.getCode())){
if(Objects.equals(orderChild.getStatus(),OrderChildEnum.Status.OWNER_CANCEL.getCode())) {
cancelWeight = cancelWeight.add(orderChild.getWeight());
seconds = seconds.add(new BigDecimal(LocalDateTimeUtils.getSecondsDiff(orderChild.getPayTime(),orderChild.getCancelTime())));
}
}else{
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(),orderChild.getCancelTime()))); }
} }
} }
BigDecimal noTransitWeight = transportWeight.subtract(deliveredWeight);//未拉运的重量 BigDecimal noTransitWeight = transportWeight.subtract(deliveredWeight);//未拉运的重量
BigDecimal noTransitFreight = noTransitWeight.multiply(validFreightPrice);//未拉运的费用 BigDecimal noTransitFreight = noTransitWeight.multiply(validFreightPrice);//未拉运的费用
BigDecimal totalFreight = deliveredFreight.add(noTransitFreight); BigDecimal totalFreight = deliveredFreight.add(noTransitFreight);//总运费
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.getCode())){ 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).movePointRight(2); .divide(new BigDecimal(3600),2, BigDecimal.ROUND_HALF_UP).movePointRight(2);
} }
figure = baseFigure.add(truckFigure); figure = baseFigure.add(truckFigure);
} }
} }
......
...@@ -160,7 +160,8 @@ public class OrderChildSqlProvider { ...@@ -160,7 +160,8 @@ public class OrderChildSqlProvider {
"date_format(create_time, '%Y-%m-%d %H:%i:%s') as createTime," + "date_format(create_time, '%Y-%m-%d %H:%i:%s') as createTime," +
"date_format(unload_time, '%Y-%m-%d %H:%i:%s') as unloadTime " "date_format(unload_time, '%Y-%m-%d %H:%i:%s') as unloadTime "
); );
FROM("order_child"); FROM("order_child a");
WHERE("(child_no = #{orderChildNo}"); WHERE("(child_no = #{orderChildNo}");
WHERE("(status >=" + OrderChildEnum.Status.LOAD.getCode()); WHERE("(status >=" + OrderChildEnum.Status.LOAD.getCode());
WHERE("(status <=" + OrderChildEnum.Status.COMPLETE.getCode()); WHERE("(status <=" + OrderChildEnum.Status.COMPLETE.getCode());
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论