提交 5671f246 authored 作者: liuhaiquan's avatar liuhaiquan

Merge remote-tracking branch 'origin/v4.9_create_goods_child_20230918' into test

......@@ -42,19 +42,22 @@ public class OrderChildFreightInfoVO {
@ApiModelProperty(value = "运费(元)(实际运费)", example = "1.23")
@MoneyOutConvert
private BigDecimal freight;
@ApiModelProperty(value = "损耗单价(分)", example = "1.23")
@MoneyOutConvert
private BigDecimal lossPrice;
@ApiModelProperty(value = "总运费(元)", example = "1.23")
@MoneyOutConvert
private BigDecimal totalFreight;
public BigDecimal getTotalFreight() {
return freightPrice.multiply(weight).setScale(2, RoundingMode.HALF_UP);
return freightPrice.multiply(weight).setScale(0, RoundingMode.HALF_UP);
}
@ApiModelProperty(value = "亏吨扣款(元)", example = "1.23")
@MoneyOutConvert
private BigDecimal lossFreight;
public BigDecimal getLossFreight() {
return (loadNet==null || unloadNet==null || unloadNet.compareTo(loadNet)>0)? BigDecimal.ZERO : freightPrice.multiply(loadNet.subtract(unloadNet)).setScale(2, RoundingMode.HALF_UP);
return (loadNet==null || unloadNet==null || unloadNet.compareTo(loadNet)>0)? BigDecimal.ZERO : lossPrice.multiply(loadNet.subtract(unloadNet)).setScale(2, RoundingMode.HALF_UP);
}
@ApiModelProperty(value = "状态", example = "0")
......
......@@ -60,6 +60,8 @@ public class OrderChildVO {
@ApiModelProperty(value = "最晚装货时间", example = "")
private String loadDeadline;
@ApiModelProperty(value = "车主id", example = "1")
private Long truckOwnUserNo;
@ApiModelProperty(value = "车辆ID", example = "1")
private Integer truckId;
@ApiModelProperty(value = "车牌号", example = "京A12345")
......
......@@ -46,6 +46,7 @@ public class OrderChild implements HasKey<Integer> {
private String receiveAddress; //收货地址
private LocalDateTime loadDeadline; //最晚装货时间
private Long truckOwnUserNo; //车主编号
private Integer truckId; //车辆ID
private String truckNo; //车牌号
private BigDecimal truckLoad; //载重(单位吨)
......
......@@ -167,6 +167,7 @@ public class OrderChildServiceImpl implements OrderChildService {
orderChild.setDriverName(driverTruckInfo.getName());
orderChild.setDriverMobile(driverTruckInfo.getMobile());
orderChild.setTruckOwnUserNo(driverTruckInfo.getTruckOwnUserNo());
orderChild.setTruckId(driverTruckInfo.getTruckId());
orderChild.setTruckNo(driverTruckInfo.getTruckNo());
orderChild.setTruckLoad(truckLoad);
......
......@@ -21,6 +21,7 @@ import com.clx.user.feign.UserClxFeign;
import com.msl.common.enums.ResultCodeEnum;
import com.msl.common.exception.ServiceSystemException;
import com.msl.common.result.Result;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -28,6 +29,7 @@ import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
......@@ -37,6 +39,7 @@ import java.util.stream.Collectors;
* Time 16:45
*/
@Service
@Slf4j
public class OrderGoodsServiceImpl implements OrderGoodsService {
@Autowired
......@@ -96,19 +99,21 @@ public class OrderGoodsServiceImpl implements OrderGoodsService {
List<OrderGoodsDriverTruck> truckList = orderGoodsDriverTruckDao.
selectListByDriverUserNo(orderGoodsListParam.getDriverUserNo())
.orElseThrow(PerformanceResultEnum.DATA_NOT_FIND, "当前用户未绑定车辆");
List<String> truckNoList = null;
if (truckList.isEmpty()) {
//查询当前用户是否是货主
Long driverUserNo = orderGoodsListParam.getDriverUserNo();
Result<List<String>> ownTruckByUserNo = userClxFeign.getOwnTruckByUserNo(driverUserNo);
if (ownTruckByUserNo.getCode().equals(ResultCodeEnum.SUCCESS)) {
if (ownTruckByUserNo.getData().isEmpty()) {
throw new ServiceSystemException(PerformanceResultEnum.DATA_NOT_FIND, "当前用户未绑定车辆");
}
truckNoList = ownTruckByUserNo.getData();
List<String> truckNoList = new ArrayList<>();
//查询当前用户是否是货主
Long driverUserNo = orderGoodsListParam.getDriverUserNo();
Result<List<String>> ownTruckByUserNo = userClxFeign.getOwnTruckByUserNo(driverUserNo);
log.info("通过用户编号:{} 查询本人车辆,查询结果:{}",driverUserNo,ownTruckByUserNo);
if (ownTruckByUserNo.getCode().equals(ResultCodeEnum.SUCCESS)) {
if (CollectionUtils.isEmpty(truckList) && ownTruckByUserNo.getData().isEmpty()) {
throw new ServiceSystemException(PerformanceResultEnum.DATA_NOT_FIND, "当前用户未绑定车辆");
}
} else {
truckNoList = truckList.stream().map(OrderGoodsDriverTruck::getTruckNo).collect(Collectors.toList());
truckNoList.addAll(ownTruckByUserNo.getData());//当前用户自己的车
truckNoList.addAll(truckList.stream().map(OrderGoodsDriverTruck::getTruckNo).collect(Collectors.toList()));//当前用户被绑定为司机的车
}
if(CollectionUtils.isEmpty(truckNoList)){
throw new ServiceSystemException(PerformanceResultEnum.DATA_NOT_FIND, "当前用户未绑定车辆");
}
List<OrderGoodsTruckBind> orderGoodsDriverTrucks = orderGoodsTruckBindDao.selectListByTruckNo(truckNoList)
.orElseThrow(PerformanceResultEnum.DATA_NOT_FIND, "当前用户没有专属单");
......
......@@ -31,7 +31,7 @@ public class OrderChildSqlProvider {
"date_format(unload_time, '%Y-%m-%d %H:%i:%s') as unloadTime "
);
FROM("order_child ");
WHERE("(user_no = #{param.userNo} or driver_user_no = #{param.userNo}) ");
WHERE("(user_no = #{param.userNo} or driver_user_no = #{param.userNo} or truck_own_user_no = #{param.userNo}) ");
if (Objects.isNull(param.getStatus())) {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论