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

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

Merge remote-tracking branch 'origin/v4.9_create_goods_child_20230918' into v4.9_create_goods_child_20230918
...@@ -45,7 +45,13 @@ public enum PerformanceResultEnum implements ResultEnum { ...@@ -45,7 +45,13 @@ public enum PerformanceResultEnum implements ResultEnum {
ORDER_CHILD_LOAD_TIMEOUT(1305, "超过装货截止时间"), ORDER_CHILD_LOAD_TIMEOUT(1305, "超过装货截止时间"),
ORDER_CHILD_CANCEL_FORBID(1306, "运单无法取消"), ORDER_CHILD_CANCEL_FORBID(1306, "运单无法取消"),
ORDER_CHILD_CANCEL_FORBID_COUNT(1307, "超出最大取消数量"), ORDER_CHILD_CANCEL_FORBID_COUNT(1307, "超出最大取消数量"),
ORDER_CHILD_POUND_AUDIT(1307, "磅单审核中"), ORDER_CHILD_POUND_AUDIT(1308, "磅单审核中"),
ORDER_CHILD_DIRECT_ORDER_TRUCK_ERROR(1309, "请选择定向车辆"),
ORDER_CHILD_DIRECT_ORDER_TRUCK_ERROR1(1310, "请选择非定向车辆"),
ORDER_CHILD_DIRECT_REJECT_TRUCK_ERROR(1311, "非定向车辆无法取消"),
ORDER_CHILD_LOAD_WEIGHT_ERROR(1312, "装货净重超过载重的1.5倍"),
ORDER_CHILD_UNLOAD_WEIGHT_ERROR(1313, "卸货净重超过载重的1.5倍"),
; ;
......
...@@ -5,6 +5,7 @@ import lombok.Getter; ...@@ -5,6 +5,7 @@ import lombok.Getter;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.Setter; import lombok.Setter;
import javax.validation.constraints.Max;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
...@@ -25,13 +26,12 @@ public class OrderChildLoadAndUnloadAgainParam extends PositionParam { ...@@ -25,13 +26,12 @@ public class OrderChildLoadAndUnloadAgainParam extends PositionParam {
private String unloadPoundNo; private String unloadPoundNo;
@ApiModelProperty(value = "装货毛重(单位吨)", example = "2.46") @ApiModelProperty(value = "装货毛重(单位吨)", example = "2.46")
@NotNull(message = "装货毛重不能为空")
private BigDecimal loadRough; private BigDecimal loadRough;
@ApiModelProperty(value = "装货皮重(单位吨)", example = "1.23") @ApiModelProperty(value = "装货皮重(单位吨)", example = "1.23")
@NotNull(message = "装货皮重不能为空")
private BigDecimal loadTare; private BigDecimal loadTare;
@ApiModelProperty(value = "装货净重(单位吨)", example = "1.23") @ApiModelProperty(value = "装货净重(单位吨)", example = "1.23")
@NotNull(message = "装货净重不能为空") @NotNull(message = "装货净重不能为空")
@Max(value = 999, message = "最大999吨")
private BigDecimal loadNet; private BigDecimal loadNet;
@ApiModelProperty(value = "磅单图片列表") @ApiModelProperty(value = "磅单图片列表")
...@@ -39,13 +39,12 @@ public class OrderChildLoadAndUnloadAgainParam extends PositionParam { ...@@ -39,13 +39,12 @@ public class OrderChildLoadAndUnloadAgainParam extends PositionParam {
private List<String> loadImageList; private List<String> loadImageList;
@ApiModelProperty(value = "卸货毛重(单位吨)", example = "2.46") @ApiModelProperty(value = "卸货毛重(单位吨)", example = "2.46")
@NotNull(message = "装货毛重不能为空")
private BigDecimal unloadRough; private BigDecimal unloadRough;
@ApiModelProperty(value = "卸货皮重(单位吨)", example = "1.23") @ApiModelProperty(value = "卸货皮重(单位吨)", example = "1.23")
@NotNull(message = "装货皮重不能为空")
private BigDecimal unloadTare; private BigDecimal unloadTare;
@ApiModelProperty(value = "卸货净重(单位吨)", example = "1.23") @ApiModelProperty(value = "卸货净重(单位吨)", example = "1.23")
@NotNull(message = "装货净重不能为空") @NotNull(message = "装货净重不能为空")
@Max(value = 999, message = "最大999吨")
private BigDecimal unloadNet; private BigDecimal unloadNet;
@ApiModelProperty(value = "磅单图片列表") @ApiModelProperty(value = "磅单图片列表")
......
...@@ -5,6 +5,7 @@ import lombok.Getter; ...@@ -5,6 +5,7 @@ import lombok.Getter;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.Setter; import lombok.Setter;
import javax.validation.constraints.Max;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
...@@ -21,13 +22,12 @@ public class OrderChildLoadParam extends PositionParam { ...@@ -21,13 +22,12 @@ public class OrderChildLoadParam extends PositionParam {
private String childNo; private String childNo;
@ApiModelProperty(value = "装货毛重(单位吨)", example = "2.46") @ApiModelProperty(value = "装货毛重(单位吨)", example = "2.46")
@NotNull(message = "装货毛重不能为空")
private BigDecimal loadRough; private BigDecimal loadRough;
@ApiModelProperty(value = "装货皮重(单位吨)", example = "1.23") @ApiModelProperty(value = "装货皮重(单位吨)", example = "1.23")
@NotNull(message = "装货皮重不能为空")
private BigDecimal loadTare; private BigDecimal loadTare;
@ApiModelProperty(value = "装货净重(单位吨)", example = "1.23") @ApiModelProperty(value = "装货净重(单位吨)", example = "1.23")
@NotNull(message = "装货净重不能为空") @NotNull(message = "装货净重不能为空")
@Max(value = 999, message = "最大999吨")
private BigDecimal loadNet; private BigDecimal loadNet;
@ApiModelProperty(value = "磅单图片列表") @ApiModelProperty(value = "磅单图片列表")
......
...@@ -5,6 +5,7 @@ import lombok.Getter; ...@@ -5,6 +5,7 @@ import lombok.Getter;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.Setter; import lombok.Setter;
import javax.validation.constraints.Max;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
...@@ -25,13 +26,12 @@ public class OrderChildUnloadParam extends PositionParam { ...@@ -25,13 +26,12 @@ public class OrderChildUnloadParam extends PositionParam {
private String unloadPoundNo; private String unloadPoundNo;
@ApiModelProperty(value = "卸货毛重(单位吨)", example = "2.46") @ApiModelProperty(value = "卸货毛重(单位吨)", example = "2.46")
@NotNull(message = "装货毛重不能为空")
private BigDecimal unloadRough; private BigDecimal unloadRough;
@ApiModelProperty(value = "卸货皮重(单位吨)", example = "1.23") @ApiModelProperty(value = "卸货皮重(单位吨)", example = "1.23")
@NotNull(message = "装货皮重不能为空")
private BigDecimal unloadTare; private BigDecimal unloadTare;
@ApiModelProperty(value = "卸货净重(单位吨)", example = "1.23") @ApiModelProperty(value = "卸货净重(单位吨)", example = "1.23")
@NotNull(message = "装货净重不能为空") @NotNull(message = "装货净重不能为空")
@Max(value = 999, message = "最大999吨")
private BigDecimal unloadNet; private BigDecimal unloadNet;
@ApiModelProperty(value = "磅单图片列表") @ApiModelProperty(value = "磅单图片列表")
......
...@@ -29,6 +29,9 @@ public class OrderChildPoundInfoVO { ...@@ -29,6 +29,9 @@ public class OrderChildPoundInfoVO {
private BigDecimal unloadTare; private BigDecimal unloadTare;
@ApiModelProperty(value = "卸货净重(单位吨)", example = "1.23") @ApiModelProperty(value = "卸货净重(单位吨)", example = "1.23")
private BigDecimal unloadNet; private BigDecimal unloadNet;
@ApiModelProperty(value = "卸货磅单编号", example = "url")
private String unloadPoundNo;
@ApiModelProperty(value = "拉运重量(单位吨)", example = "1.23") @ApiModelProperty(value = "拉运重量(单位吨)", example = "1.23")
private BigDecimal weight; private BigDecimal weight;
@ApiModelProperty(value = "运费(元)", example = "1.23") @ApiModelProperty(value = "运费(元)", example = "1.23")
......
...@@ -34,6 +34,15 @@ public class CarrierOrderChildDetailVO { ...@@ -34,6 +34,15 @@ public class CarrierOrderChildDetailVO {
@MoneyOutConvert @MoneyOutConvert
private BigDecimal freightPrice; private BigDecimal freightPrice;
@ApiModelProperty(value = "应付运费(元)", example = "1.23")
private BigDecimal payableFreight;
@ApiModelProperty(value = "亏吨扣款(元)", example = "1.23")
private BigDecimal lossDeduction;
@ApiModelProperty(value = "实付运费(元)", example = "1.23")
private BigDecimal realFreight;
@ApiModelProperty(value = "损耗单价(元)", example = "1.23") @ApiModelProperty(value = "损耗单价(元)", example = "1.23")
@MoneyOutConvert @MoneyOutConvert
...@@ -43,6 +52,9 @@ public class CarrierOrderChildDetailVO { ...@@ -43,6 +52,9 @@ public class CarrierOrderChildDetailVO {
@MoneyOutConvert @MoneyOutConvert
private BigDecimal orderFreightPrice; private BigDecimal orderFreightPrice;
@ApiModelProperty("货物重量")
private BigDecimal extractWeight;
@ApiModelProperty(value = "发货地址", example = "朝阳") @ApiModelProperty(value = "发货地址", example = "朝阳")
private String sendAddress; private String sendAddress;
......
...@@ -41,6 +41,9 @@ public class OrderChildPoundAuditDetailVO { ...@@ -41,6 +41,9 @@ public class OrderChildPoundAuditDetailVO {
@ApiModelProperty(value="卸车磅单图片") @ApiModelProperty(value="卸车磅单图片")
private List<String> unloadImages; private List<String> unloadImages;
@ApiModelProperty(value="创建时间",example = "2012-01-01 01:10:10")
private String createTime;
} }
\ No newline at end of file
...@@ -20,6 +20,7 @@ import org.springframework.validation.annotation.Validated; ...@@ -20,6 +20,7 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import java.util.Collections;
import java.util.Comparator; import java.util.Comparator;
import java.util.List; import java.util.List;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
...@@ -60,7 +61,14 @@ public class CarrierOrderChildController { ...@@ -60,7 +61,14 @@ public class CarrierOrderChildController {
public Result<List<OrderChildStatusVO>> getOrderChildStatusList() { public Result<List<OrderChildStatusVO>> getOrderChildStatusList() {
ConcurrentHashMap<Integer, String> map = OrderChildEnum.map; ConcurrentHashMap<Integer, String> map = OrderChildEnum.map;
List<OrderChildStatusVO> result = map.entrySet().stream().map(c -> new OrderChildStatusVO(c.getKey(), c.getValue())).collect(Collectors.toList()); List<OrderChildStatusVO> result = map.entrySet().stream().map(c -> new OrderChildStatusVO(c.getKey(), c.getValue())).collect(Collectors.toList());
result.stream().sorted(Comparator.comparing(OrderChildStatusVO::getStatus)).collect(Collectors.toList()); Collections.sort(result, new Comparator<OrderChildStatusVO>() {
@Override
public int compare(OrderChildStatusVO o1, OrderChildStatusVO o2) {
Integer status1= o1.getStatus();
Integer status2= o2.getStatus();
return status1.compareTo(status2);
}
});
return Result.ok(result); return Result.ok(result);
} }
......
...@@ -19,7 +19,7 @@ public interface OrderChildImageDao extends BaseDao<OrderChildImageMapper, Order ...@@ -19,7 +19,7 @@ public interface OrderChildImageDao extends BaseDao<OrderChildImageMapper, Order
boolean deleteUnload(String childNo); boolean deleteUnload(String childNo);
boolean deleteLoadAndUnload(String childNo); boolean deleteLoadAndUnload(String childNo);
Optional<List<OrderChildImage>> getImages(String childNo, Integer type); List<OrderChildImage> getImages(String childNo, Integer type);
Optional<List<OrderChildImage>> listLoadAndUnload(String childNo); Optional<List<OrderChildImage>> listLoadAndUnload(String childNo);
......
...@@ -18,8 +18,12 @@ public interface OrderGoodsTruckBindDao extends BaseDao<OrderGoodsTruckBindMappe ...@@ -18,8 +18,12 @@ public interface OrderGoodsTruckBindDao extends BaseDao<OrderGoodsTruckBindMappe
void saveBatchEntity(String orderNo, String orderGoodsNo, List<String> trackList, LocalDateTime now); void saveBatchEntity(String orderNo, String orderGoodsNo, List<String> trackList, LocalDateTime now);
boolean updateStatus(OrderGoodsTruckBind item);
List<Integer> getTrucksByOrderGoodsNo(String orderGoodsNo); List<Integer> getTrucksByOrderGoodsNo(String orderGoodsNo);
Optional<OrderGoodsTruckBind> getByOrderGoodsNoAndTruckNo(String orderGoodsNo, String truckNo); Optional<OrderGoodsTruckBind> getByOrderGoodsNoAndTruckNo(String orderGoodsNo, String truckNo);
Optional<OrderGoodsTruckBind> getValidByOrderGoodsNoAndTruckNo(String orderGoodsNo, String truckNo);
Optional<List<OrderGoodsTruckBind>> selectListByTruckNo(List<String> truckList); Optional<List<OrderGoodsTruckBind>> selectListByTruckNo(List<String> truckList);
} }
...@@ -7,6 +7,7 @@ import com.msl.common.base.Optional; ...@@ -7,6 +7,7 @@ import com.msl.common.base.Optional;
import com.msl.common.dao.impl.BaseDaoImpl; import com.msl.common.dao.impl.BaseDaoImpl;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.util.Collections;
import java.util.List; import java.util.List;
/** /**
...@@ -54,9 +55,9 @@ public class OrderChildImageImpl extends BaseDaoImpl<OrderChildImageMapper, Orde ...@@ -54,9 +55,9 @@ public class OrderChildImageImpl extends BaseDaoImpl<OrderChildImageMapper, Orde
} }
@Override @Override
public Optional<List<OrderChildImage>> getImages(String childNo, Integer type) { public List<OrderChildImage> getImages(String childNo, Integer type) {
return Optional.ofEmpty(list(lQrWrapper() return Optional.ofEmpty(list(lQrWrapper()
.eq(OrderChildImage::getChildNo, childNo) .eq(OrderChildImage::getChildNo, childNo)
.eq(OrderChildImage::getType, type))); .eq(OrderChildImage::getType, type))).orElseGet(Collections::emptyList);
} }
} }
...@@ -27,6 +27,14 @@ public class OrderGoodsTruckBindDaoImpl extends BaseDaoImpl<OrderGoodsTruckBindM ...@@ -27,6 +27,14 @@ public class OrderGoodsTruckBindDaoImpl extends BaseDaoImpl<OrderGoodsTruckBindM
baseMapper.saveBatchEntity(orderNo, orderGoodsNo, trackList, DateUtils.formatDateTime(now).get()); baseMapper.saveBatchEntity(orderNo, orderGoodsNo, trackList, DateUtils.formatDateTime(now).get());
} }
@Override
public boolean updateStatus(OrderGoodsTruckBind item) {
return update(lUdWrapper()
.eq(OrderGoodsTruckBind::getId, item.getId())
.set(OrderGoodsTruckBind::getStatus, item.getStatus())
);
}
@Override @Override
public List<Integer> getTrucksByOrderGoodsNo(String orderGoodsNo) { public List<Integer> getTrucksByOrderGoodsNo(String orderGoodsNo) {
return baseMapper.getTrucksByOrderGoodsNo(orderGoodsNo); return baseMapper.getTrucksByOrderGoodsNo(orderGoodsNo);
...@@ -41,6 +49,15 @@ public class OrderGoodsTruckBindDaoImpl extends BaseDaoImpl<OrderGoodsTruckBindM ...@@ -41,6 +49,15 @@ public class OrderGoodsTruckBindDaoImpl extends BaseDaoImpl<OrderGoodsTruckBindM
} }
@Override
public Optional<OrderGoodsTruckBind> getValidByOrderGoodsNoAndTruckNo(String orderGoodsNo, String truckNo) {
return Optional.ofNullable(getOne(lQrWrapper()
.eq(OrderGoodsTruckBind::getOrderGoodsNo, orderGoodsNo)
.eq(OrderGoodsTruckBind::getTruckNo, truckNo)
.in(OrderGoodsTruckBind::getStatus, OrderGoodsTruckBind.Status.NORMAL.getCode())
));
}
@Override @Override
public Optional<List<OrderGoodsTruckBind>> selectListByTruckNo(List<String> truckList) { public Optional<List<OrderGoodsTruckBind>> selectListByTruckNo(List<String> truckList) {
return Optional.ofNullable(baseMapper.selectList(new QueryWrapper<OrderGoodsTruckBind>().lambda() return Optional.ofNullable(baseMapper.selectList(new QueryWrapper<OrderGoodsTruckBind>().lambda()
......
...@@ -11,6 +11,7 @@ import lombok.NoArgsConstructor; ...@@ -11,6 +11,7 @@ import lombok.NoArgsConstructor;
import lombok.Setter; import lombok.Setter;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Arrays; import java.util.Arrays;
import java.util.Optional; import java.util.Optional;
...@@ -36,8 +37,8 @@ public class OrderChildPoundAudit implements HasKey<Integer> { ...@@ -36,8 +37,8 @@ public class OrderChildPoundAudit implements HasKey<Integer> {
private Integer status; //审核状态 0 待审核 1 审核通过 2 审核驳回 private Integer status; //审核状态 0 待审核 1 审核通过 2 审核驳回
private Integer rejectType; //审核驳回类型:1装车 2卸车 3装车+卸车 private Integer rejectType; //审核驳回类型:1装车 2卸车 3装车+卸车
private String remark; //备注 private String remark; //备注
private String createTime; //创建时间 private LocalDateTime createTime; //创建时间
private String modifiedTime; //修改时间 private LocalDateTime modifiedTime; //修改时间
@KeyColumn("id") @KeyColumn("id")
@Override @Override
......
...@@ -7,11 +7,14 @@ import com.baomidou.mybatisplus.annotation.TableName; ...@@ -7,11 +7,14 @@ import com.baomidou.mybatisplus.annotation.TableName;
import com.msl.common.config.KeyColumn; import com.msl.common.config.KeyColumn;
import com.msl.common.model.HasKey; import com.msl.common.model.HasKey;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.Optional;
/** /**
* 货单定向绑定车辆表 * 货单定向绑定车辆表
...@@ -30,7 +33,7 @@ public class OrderGoodsTruckBind implements HasKey<Integer> { ...@@ -30,7 +33,7 @@ public class OrderGoodsTruckBind implements HasKey<Integer> {
private String truckNo; private String truckNo;
@TableField("status") @TableField("status")
@ApiModelProperty("1:正常 2:取消") @ApiModelProperty("状态 1:正常 2:取消 3: 已接单")
private Integer status; private Integer status;
@TableField("order_no") @TableField("order_no")
...@@ -55,4 +58,21 @@ public class OrderGoodsTruckBind implements HasKey<Integer> { ...@@ -55,4 +58,21 @@ public class OrderGoodsTruckBind implements HasKey<Integer> {
public Integer gainKey() { public Integer gainKey() {
return this.id; return this.id;
} }
@Getter
@AllArgsConstructor
public enum Status {
NORMAL(1, "正常"),
CANCEL(2, "取消"),
ORDER(3, "已接单"),
;
private final int code;
private final String msg;
public static Optional<Status> getByCode(int code) {
return Arrays.stream(values()).filter(e -> e.code == code).findFirst();
}
}
} }
...@@ -2,10 +2,7 @@ package com.clx.performance.service.impl; ...@@ -2,10 +2,7 @@ package com.clx.performance.service.impl;
import com.clx.performance.dao.*; import com.clx.performance.dao.*;
import com.clx.performance.enums.OrderChildEnum; import com.clx.performance.enums.*;
import com.clx.performance.enums.OrderChildLogEnum;
import com.clx.performance.enums.OrderChildPoundAuditEnum;
import com.clx.performance.enums.PerformanceResultEnum;
import com.clx.performance.model.*; import com.clx.performance.model.*;
import com.clx.performance.param.pc.OrderChildCarrierCancelParam; import com.clx.performance.param.pc.OrderChildCarrierCancelParam;
import com.clx.performance.param.pc.PoundAuditParam; import com.clx.performance.param.pc.PoundAuditParam;
...@@ -35,6 +32,7 @@ import java.util.stream.Collectors; ...@@ -35,6 +32,7 @@ import java.util.stream.Collectors;
@AllArgsConstructor @AllArgsConstructor
public class OrderChildPoundAuditServiceImpl implements OrderChildPoundAuditService { public class OrderChildPoundAuditServiceImpl implements OrderChildPoundAuditService {
private final OrderGoodsTruckBindDao orderGoodsTruckBindDao;
private final OrderChildImageDao orderChildImageDao; private final OrderChildImageDao orderChildImageDao;
private final OrderChildPoundAuditDao orderChildPoundAuditDao; private final OrderChildPoundAuditDao orderChildPoundAuditDao;
...@@ -51,8 +49,8 @@ public class OrderChildPoundAuditServiceImpl implements OrderChildPoundAuditSer ...@@ -51,8 +49,8 @@ public class OrderChildPoundAuditServiceImpl implements OrderChildPoundAuditSer
@Override @Override
public OrderChildPoundAuditDetailVO getPoundAuditDetail(String childNo) { public OrderChildPoundAuditDetailVO getPoundAuditDetail(String childNo) {
OrderChildPoundAudit poundAuditDetail = orderChildPoundAuditDao.getPoundAuditDetail(childNo).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND); OrderChildPoundAudit poundAuditDetail = orderChildPoundAuditDao.getPoundAuditDetail(childNo).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
List<OrderChildImage> loadImages = orderChildImageDao.getImages(childNo, OrderChildImage.Type.LOAD.getCode()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND); List<OrderChildImage> loadImages = orderChildImageDao.getImages(childNo, OrderChildImage.Type.LOAD.getCode());
List<OrderChildImage> unloadImages = orderChildImageDao.getImages(childNo, OrderChildImage.Type.UNLOAD.getCode()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND); List<OrderChildImage> unloadImages = orderChildImageDao.getImages(childNo, OrderChildImage.Type.UNLOAD.getCode());
OrderChildPoundAuditDetailVO vo = new OrderChildPoundAuditDetailVO(); OrderChildPoundAuditDetailVO vo = new OrderChildPoundAuditDetailVO();
vo.setChildNo(childNo); vo.setChildNo(childNo);
vo.setLoadImages(loadImages.stream().map(OrderChildImage::getImage).collect(Collectors.toList())); vo.setLoadImages(loadImages.stream().map(OrderChildImage::getImage).collect(Collectors.toList()));
...@@ -142,6 +140,13 @@ public class OrderChildPoundAuditServiceImpl implements OrderChildPoundAuditSer ...@@ -142,6 +140,13 @@ public class OrderChildPoundAuditServiceImpl implements OrderChildPoundAuditSer
OrderGoods orderGoods = orderGoodsDao.getByOrderGoodsNo(orderChild.getOrderGoodsNo()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND); OrderGoods orderGoods = orderGoodsDao.getByOrderGoodsNo(orderChild.getOrderGoodsNo()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
// 定向
OrderGoodsTruckBind orderGoodsTruckBind = null;
if (Objects.equals(orderGoods.getPendingOrderWay(), OrderGoodsPendingOrderWayStatusEnum.Status.EXCLUSIVE.getCode())){
orderGoodsTruckBind = orderGoodsTruckBindDao.getByOrderGoodsNoAndTruckNo(orderGoods.getOrderGoodsNo(), orderChild.getTruckNo())
.orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
}
orderChild.setCancelRemark(param.getRemark()); orderChild.setCancelRemark(param.getRemark());
orderChild.setCancelTime(now); orderChild.setCancelTime(now);
orderChild.setFinishTime(now); orderChild.setFinishTime(now);
...@@ -150,7 +155,10 @@ public class OrderChildPoundAuditServiceImpl implements OrderChildPoundAuditSer ...@@ -150,7 +155,10 @@ public class OrderChildPoundAuditServiceImpl implements OrderChildPoundAuditSer
orderChildDao.updateCancel(orderChild); orderChildDao.updateCancel(orderChild);
// 返回吨数 // 返回吨数
cancelReturnWeight(orderChild, orderGoods); updateOrderGoodsAmountReturn(orderChild, orderGoods);
// 取消定向
updateOrderGoodsDirectCancel(orderGoodsTruckBind);
// 释放司机、车辆 // 释放司机、车辆
releaseDriver(orderChild.getDriverUserNo()); releaseDriver(orderChild.getDriverUserNo());
...@@ -164,8 +172,18 @@ public class OrderChildPoundAuditServiceImpl implements OrderChildPoundAuditSer ...@@ -164,8 +172,18 @@ public class OrderChildPoundAuditServiceImpl implements OrderChildPoundAuditSer
/** /**
* 取消返吨数 * 取消返吨数
*/ */
private void cancelReturnWeight(OrderChild orderChild, OrderGoods orderGoods){ private void updateOrderGoodsAmountReturn(OrderChild orderChild, OrderGoods orderGoods){
orderGoodsDao.updateOrderGoodsReduceWeightAndStatus(orderGoods.getId(), orderChild.getWeight().negate());
}
/**
* 更新定向派单状态 (取消)
*/
private void updateOrderGoodsDirectCancel(OrderGoodsTruckBind orderGoodsTruckBind){
if (orderGoodsTruckBind == null) {return;}
orderGoodsTruckBind.setStatus(OrderGoodsTruckBind.Status.CANCEL.getCode());
orderGoodsTruckBindDao.updateStatus(orderGoodsTruckBind);
} }
/** /**
......
...@@ -103,9 +103,13 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -103,9 +103,13 @@ public class OrderChildServiceImpl implements OrderChildService {
throw new ServiceSystemException(PerformanceResultEnum.ORDER_INVALID); throw new ServiceSystemException(PerformanceResultEnum.ORDER_INVALID);
} }
OrderGoodsTruckBind orderGoodsTruckBind = null; // 定向
OrderGoodsTruckBind orderGoodsTruckBind = orderGoodsTruckBindDao.getValidByOrderGoodsNoAndTruckNo(orderGoods.getOrderGoodsNo(), truckNo).orNull();
if (Objects.equals(orderGoods.getPendingOrderWay(), OrderGoodsPendingOrderWayStatusEnum.Status.EXCLUSIVE.getCode())){ if (Objects.equals(orderGoods.getPendingOrderWay(), OrderGoodsPendingOrderWayStatusEnum.Status.EXCLUSIVE.getCode())){
orderGoodsTruckBind = orderGoodsTruckBindDao.getByOrderGoodsNoAndTruckNo(orderGoods.getOrderGoodsNo(), truckNo).orElseThrow(PerformanceResultEnum.ORDER_INVALID); if (orderGoodsTruckBind == null){throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_DIRECT_ORDER_TRUCK_ERROR);}
}
else {
if (orderGoodsTruckBind != null){throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_DIRECT_ORDER_TRUCK_ERROR1);}
} }
// 库存验证 // 库存验证
...@@ -154,7 +158,7 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -154,7 +158,7 @@ public class OrderChildServiceImpl implements OrderChildService {
updateOrderGoodsAmount(orderGoods, truckLoad); updateOrderGoodsAmount(orderGoods, truckLoad);
// 更新定向单状态 // 更新定向单状态
updateOrderGoods(orderGoodsTruckBind); updateOrderGoodsDirect(orderGoodsTruckBind);
// 新增运单 // 新增运单
orderChildDao.saveEntity(orderChild); orderChildDao.saveEntity(orderChild);
...@@ -179,7 +183,6 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -179,7 +183,6 @@ public class OrderChildServiceImpl implements OrderChildService {
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo(); UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
Long userNo = loginUserInfo.getUserNo(); Long userNo = loginUserInfo.getUserNo();
LocalDateTime now = LocalDateTime.now();
OrderGoods orderGoods = orderGoodsDao.getByOrderGoodsNo(param.getOrderGoodsNo()).orElseThrow(PerformanceResultEnum.ORDER_INVALID); OrderGoods orderGoods = orderGoodsDao.getByOrderGoodsNo(param.getOrderGoodsNo()).orElseThrow(PerformanceResultEnum.ORDER_INVALID);
// 状态验证 // 状态验证
if (!Objects.equals(orderGoods.getOrderGoodsStatus(), OrderGoodsStatusEnum.Status.PAYING.getCode()) if (!Objects.equals(orderGoods.getOrderGoodsStatus(), OrderGoodsStatusEnum.Status.PAYING.getCode())
...@@ -192,9 +195,11 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -192,9 +195,11 @@ public class OrderChildServiceImpl implements OrderChildService {
throw new ServiceSystemException(PerformanceResultEnum.ORDER_INVALID); throw new ServiceSystemException(PerformanceResultEnum.ORDER_INVALID);
} }
orderGoodsTruckBindDao.getByOrderGoodsNoAndTruckNo(orderGoods.getOrderGoodsNo(), param.getTruckNo()).orElseThrow(PerformanceResultEnum.ORDER_INVALID); OrderGoodsTruckBind orderGoodsTruckBind = orderGoodsTruckBindDao.getValidByOrderGoodsNoAndTruckNo(orderGoods.getOrderGoodsNo(), param.getTruckNo())
.orElseThrow(PerformanceResultEnum.ORDER_CHILD_DIRECT_REJECT_TRUCK_ERROR);
updateOrderGoodsReject(orderGoods, param.getTruckNo()); // 更新定向派单
updateOrderGoodsDirectReject(orderGoodsTruckBind);
} }
...@@ -320,6 +325,10 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -320,6 +325,10 @@ public class OrderChildServiceImpl implements OrderChildService {
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_CANCELED); throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_CANCELED);
} }
if (loadCheck(param.getLoadNet(), orderChild.getTruckLoad())){
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_LOAD_WEIGHT_ERROR);
}
if (orderChild.getLoadTime() == null && Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.ARRIVE_SEND.getCode())) { if (orderChild.getLoadTime() == null && Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.ARRIVE_SEND.getCode())) {
updateLoadFirst(param, orderChild); updateLoadFirst(param, orderChild);
// 日志 // 日志
...@@ -358,6 +367,8 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -358,6 +367,8 @@ public class OrderChildServiceImpl implements OrderChildService {
orderChild.setStatus(OrderChildEnum.Status.LOAD.getCode()); orderChild.setStatus(OrderChildEnum.Status.LOAD.getCode());
orderChildDao.updateLoad(orderChild); orderChildDao.updateLoad(orderChild);
//
orderChildImageDao.batchSaveEntity(imageList); orderChildImageDao.batchSaveEntity(imageList);
} }
...@@ -402,6 +413,10 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -402,6 +413,10 @@ public class OrderChildServiceImpl implements OrderChildService {
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_CANCELED); throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_CANCELED);
} }
if (loadCheck(param.getUnloadNet(), orderChild.getTruckLoad())){
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_UNLOAD_WEIGHT_ERROR);
}
if (orderChild.getUnloadTime() == null && Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.ARRIVE_RECEIVE.getCode())) { if (orderChild.getUnloadTime() == null && Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.ARRIVE_RECEIVE.getCode())) {
updateUnloadFirst(param, orderChild); updateUnloadFirst(param, orderChild);
// 日志 // 日志
...@@ -452,6 +467,10 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -452,6 +467,10 @@ public class OrderChildServiceImpl implements OrderChildService {
orderChildPoundAuditDao.saveEntity(audit); orderChildPoundAuditDao.saveEntity(audit);
// 释放司机、车辆
releaseDriver(orderChild.getDriverUserNo());
releaseTruck(orderChild.getTruckId());
} }
private void updateReUnload(OrderChildUnloadParam param, OrderChild orderChild) { private void updateReUnload(OrderChildUnloadParam param, OrderChild orderChild) {
...@@ -519,6 +538,13 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -519,6 +538,13 @@ public class OrderChildServiceImpl implements OrderChildService {
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_STATUS_CHANGED); throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_STATUS_CHANGED);
} }
if (loadCheck(param.getLoadNet(), orderChild.getTruckLoad())){
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_LOAD_WEIGHT_ERROR);
}
if (loadCheck(param.getUnloadNet(), orderChild.getTruckLoad())){
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_UNLOAD_WEIGHT_ERROR);
}
List<OrderChildImage> imageList = new ArrayList<>(); List<OrderChildImage> imageList = new ArrayList<>();
for (String item : param.getLoadImageList()) { for (String item : param.getLoadImageList()) {
OrderChildImage image = new OrderChildImage(); OrderChildImage image = new OrderChildImage();
...@@ -596,10 +622,6 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -596,10 +622,6 @@ public class OrderChildServiceImpl implements OrderChildService {
orderChild.setStatus(OrderChildEnum.Status.UNSETTLE.getCode()); orderChild.setStatus(OrderChildEnum.Status.UNSETTLE.getCode());
orderChildDao.updateStatus(orderChild); orderChildDao.updateStatus(orderChild);
// 释放司机、车辆
releaseDriver(orderChild.getDriverUserNo());
releaseTruck(orderChild.getTruckId());
// 日志 // 日志
orderChildLogService.saveDriverOrderChildLog(childNo, OrderChildLogEnum.Type.DRIVER_CONFIRM.getCode(), OrderChildLogEnum.Type.DRIVER_CONFIRM.getMsg(), orderChildLogService.saveDriverOrderChildLog(childNo, OrderChildLogEnum.Type.DRIVER_CONFIRM.getCode(), OrderChildLogEnum.Type.DRIVER_CONFIRM.getMsg(),
loginUserInfo.getUserNo(), loginUserInfo.getUserName()); loginUserInfo.getUserNo(), loginUserInfo.getUserName());
...@@ -632,6 +654,13 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -632,6 +654,13 @@ public class OrderChildServiceImpl implements OrderChildService {
// 取消量验证 // 取消量验证
if (!cancelCountCheck(userNo)){throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_CANCEL_FORBID_COUNT);} if (!cancelCountCheck(userNo)){throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_CANCEL_FORBID_COUNT);}
// 定向
OrderGoodsTruckBind orderGoodsTruckBind = null;
if (Objects.equals(orderGoods.getPendingOrderWay(), OrderGoodsPendingOrderWayStatusEnum.Status.EXCLUSIVE.getCode())){
orderGoodsTruckBind = orderGoodsTruckBindDao.getByOrderGoodsNoAndTruckNo(orderGoods.getOrderGoodsNo(), orderChild.getTruckNo())
.orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
}
orderChild.setCancelRemark(param.getRemark()); orderChild.setCancelRemark(param.getRemark());
orderChild.setCancelTime(now); orderChild.setCancelTime(now);
orderChild.setFinishTime(now); orderChild.setFinishTime(now);
...@@ -640,7 +669,10 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -640,7 +669,10 @@ public class OrderChildServiceImpl implements OrderChildService {
orderChildDao.updateCancel(orderChild); orderChildDao.updateCancel(orderChild);
// 返回吨数 // 返回吨数
cancelReturnWeight(orderChild, orderGoods); updateOrderGoodsAmountReturn(orderChild, orderGoods);
// 取消定向
updateOrderGoodsDirectCancel(orderGoodsTruckBind);
// 释放司机、车辆 // 释放司机、车辆
releaseDriver(orderChild.getDriverUserNo()); releaseDriver(orderChild.getDriverUserNo());
...@@ -764,21 +796,50 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -764,21 +796,50 @@ public class OrderChildServiceImpl implements OrderChildService {
* 更新货单数据 * 更新货单数据
*/ */
private void updateOrderGoodsAmount(OrderGoods orderGoods, BigDecimal weight){ private void updateOrderGoodsAmount(OrderGoods orderGoods, BigDecimal weight){
if (orderGoods.getResidueTransportWeight().compareTo(weight) <= 0) {orderGoods.setOrderGoodsStatus(0);} orderGoodsDao.updateOrderGoodsReduceWeightAndStatus(orderGoods.getId(), weight);
}
orderGoodsService.updateOrderGoodsReduceWeightAndStatus(orderGoods.getId(), weight); /**
* 取消返吨数
*/
private void updateOrderGoodsAmountReturn(OrderChild orderChild, OrderGoods orderGoods){
orderGoodsDao.updateOrderGoodsReduceWeightAndStatus(orderGoods.getId(), orderChild.getWeight().negate());
} }
/** /**
* 更新定向单状态 * 更新定向单状态 (接单)
*/ */
private void updateOrderGoods(OrderGoodsTruckBind orderGoodsTruckBind){ private void updateOrderGoodsDirect(OrderGoodsTruckBind orderGoodsTruckBind){
if (orderGoodsTruckBind == null) {return;} if (orderGoodsTruckBind == null) {return;}
orderGoodsTruckBind.setStatus(OrderGoodsTruckBind.Status.ORDER.getCode());
orderGoodsTruckBindDao.updateStatus(orderGoodsTruckBind);
} }
private void updateOrderGoodsReject(OrderGoods orderGoods, String truckNo){ /**
* 更新定向派单状态 (拒绝)
*/
private void updateOrderGoodsDirectReject(OrderGoodsTruckBind orderGoodsTruckBind){
orderGoodsTruckBind.setStatus(OrderGoodsTruckBind.Status.CANCEL.getCode());
orderGoodsTruckBindDao.updateStatus(orderGoodsTruckBind);
}
/**
* 更新定向派单状态 (取消)
*/
private void updateOrderGoodsDirectCancel(OrderGoodsTruckBind orderGoodsTruckBind){
if (orderGoodsTruckBind == null) {return;}
orderGoodsTruckBind.setStatus(OrderGoodsTruckBind.Status.CANCEL.getCode());
orderGoodsTruckBindDao.updateStatus(orderGoodsTruckBind);
}
/**
* 拉运吨数检测
*/
private boolean loadCheck(BigDecimal weight, BigDecimal truckLoad){
if (weight.compareTo(truckLoad.multiply(new BigDecimal("1.5"))) > 0) {return false;}
return true;
} }
/** /**
...@@ -793,13 +854,6 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -793,13 +854,6 @@ public class OrderChildServiceImpl implements OrderChildService {
return count<10; return count<10;
} }
/**
* 取消返吨数
*/
private void cancelReturnWeight(OrderChild orderChild, OrderGoods orderGoods){
}
/** /**
* 运单拉运吨数计算 * 运单拉运吨数计算
*/ */
...@@ -870,12 +924,47 @@ public class OrderChildServiceImpl implements OrderChildService { ...@@ -870,12 +924,47 @@ public class OrderChildServiceImpl implements OrderChildService {
@Override @Override
public CarrierOrderChildDetailVO getCarrierOrderChildDetail(String childNo) { public CarrierOrderChildDetailVO getCarrierOrderChildDetail(String childNo) {
//运单数据
OrderChild orderChild = orderChildDao.getByChildNo(childNo).orElseThrow(PerformanceResultEnum.ORDER_CHILD_NO_FOUND); OrderChild orderChild = orderChildDao.getByChildNo(childNo).orElseThrow(PerformanceResultEnum.ORDER_CHILD_NO_FOUND);
CarrierOrderChildDetailVO carrierOrderChildDetailVO = orderChildStruct.carrierConvert(orderChild); CarrierOrderChildDetailVO carrierOrderChildDetailVO = orderChildStruct.carrierConvert(orderChild);
//货单数据
OrderGoods orderGoods = orderGoodsDao.getByOrderGoodsNo(orderChild.getOrderGoodsNo()).orElseThrow(PerformanceResultEnum.ORDER_NO_FOUND);
carrierOrderChildDetailVO.setExtractWeight(orderGoods.getExtractWeight());
//磅单审核数据
List<OrderChildPoundAudit> poundAuditList = orderChildPoundAuditDao.getPoundAuditList(childNo); List<OrderChildPoundAudit> poundAuditList = orderChildPoundAuditDao.getPoundAuditList(childNo);
carrierOrderChildDetailVO.setPoundAudits(orderChildPoundStruct.convert(poundAuditList)); carrierOrderChildDetailVO.setPoundAudits(orderChildPoundStruct.convert(poundAuditList));
//运单日志
List<OrderChildLog> orderChildLog = orderChildLogService.getOrderChildNodeLog(childNo); List<OrderChildLog> orderChildLog = orderChildLogService.getOrderChildNodeLog(childNo);
carrierOrderChildDetailVO.setChildLogs(orderChildLogStruct.convert(orderChildLog)); carrierOrderChildDetailVO.setChildLogs(orderChildLogStruct.convert(orderChildLog));
//应付运费
BigDecimal payableFreight=BigDecimal.ZERO;
if(Objects.nonNull(orderChild.getLoadNet())){
payableFreight = orderChild.getLoadNet().multiply(carrierOrderChildDetailVO.getFreight());
}
//亏吨扣款(元)
BigDecimal lossDeduction=BigDecimal.ZERO;
if(Objects.nonNull(orderChild.getLoadNet()) && Objects.nonNull(orderChild.getUnloadNet())){
if(orderChild.getLoadNet().compareTo(orderChild.getUnloadNet()) >0){
lossDeduction = carrierOrderChildDetailVO.getFreight().multiply(orderChild.getLoadNet().subtract(orderChild.getUnloadNet()));
}
}
//实付运费(元)
BigDecimal realFreight=payableFreight.subtract(lossDeduction);
carrierOrderChildDetailVO.setPayableFreight(payableFreight);
carrierOrderChildDetailVO.setLossDeduction(lossDeduction);
carrierOrderChildDetailVO.setRealFreight(realFreight);
//磅单图片
List<OrderChildImage> loadImages = orderChildImageDao.getImages(childNo, OrderChildImage.Type.LOAD.getCode());
List<OrderChildImage> unloadImages = orderChildImageDao.getImages(childNo, OrderChildImage.Type.UNLOAD.getCode());
carrierOrderChildDetailVO.setLoadImageList(loadImages.stream().map(OrderChildImage::getImage).collect(Collectors.toList()));
carrierOrderChildDetailVO.setUnloadImageList(unloadImages.stream().map(OrderChildImage::getImage).collect(Collectors.toList()));
return carrierOrderChildDetailVO; return carrierOrderChildDetailVO;
} }
} }
...@@ -97,7 +97,7 @@ public class OrderGoodsSqlProvider { ...@@ -97,7 +97,7 @@ public class OrderGoodsSqlProvider {
WHERE("a.last_arrive_send_time >= now()"); WHERE("a.last_arrive_send_time >= now()");
WHERE("(a.order_goods_status = 20 or a.order_goods_status = 30)"); WHERE("(a.order_goods_status = 20 or a.order_goods_status = 30)");
WHERE("a.residue_transport_weight >0"); WHERE("a.residue_transport_weight >0");
ORDER_BY("a.create_time desc"); ORDER_BY("a.pending_order_time desc");
}}.toString(); }}.toString();
return sql; return sql;
} }
...@@ -132,7 +132,7 @@ public class OrderGoodsSqlProvider { ...@@ -132,7 +132,7 @@ public class OrderGoodsSqlProvider {
} }
sqlList.append(") order by a.create_time desc"); sqlList.append(") order by a.pending_order_time desc");
return sqlList.toString(); return sqlList.toString();
} }
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论