提交 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 {
ORDER_CHILD_LOAD_TIMEOUT(1305, "超过装货截止时间"),
ORDER_CHILD_CANCEL_FORBID(1306, "运单无法取消"),
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;
import lombok.NoArgsConstructor;
import lombok.Setter;
import javax.validation.constraints.Max;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
......@@ -25,13 +26,12 @@ public class OrderChildLoadAndUnloadAgainParam extends PositionParam {
private String unloadPoundNo;
@ApiModelProperty(value = "装货毛重(单位吨)", example = "2.46")
@NotNull(message = "装货毛重不能为空")
private BigDecimal loadRough;
@ApiModelProperty(value = "装货皮重(单位吨)", example = "1.23")
@NotNull(message = "装货皮重不能为空")
private BigDecimal loadTare;
@ApiModelProperty(value = "装货净重(单位吨)", example = "1.23")
@NotNull(message = "装货净重不能为空")
@Max(value = 999, message = "最大999吨")
private BigDecimal loadNet;
@ApiModelProperty(value = "磅单图片列表")
......@@ -39,13 +39,12 @@ public class OrderChildLoadAndUnloadAgainParam extends PositionParam {
private List<String> loadImageList;
@ApiModelProperty(value = "卸货毛重(单位吨)", example = "2.46")
@NotNull(message = "装货毛重不能为空")
private BigDecimal unloadRough;
@ApiModelProperty(value = "卸货皮重(单位吨)", example = "1.23")
@NotNull(message = "装货皮重不能为空")
private BigDecimal unloadTare;
@ApiModelProperty(value = "卸货净重(单位吨)", example = "1.23")
@NotNull(message = "装货净重不能为空")
@Max(value = 999, message = "最大999吨")
private BigDecimal unloadNet;
@ApiModelProperty(value = "磅单图片列表")
......
......@@ -5,6 +5,7 @@ import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import javax.validation.constraints.Max;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
......@@ -21,13 +22,12 @@ public class OrderChildLoadParam extends PositionParam {
private String childNo;
@ApiModelProperty(value = "装货毛重(单位吨)", example = "2.46")
@NotNull(message = "装货毛重不能为空")
private BigDecimal loadRough;
@ApiModelProperty(value = "装货皮重(单位吨)", example = "1.23")
@NotNull(message = "装货皮重不能为空")
private BigDecimal loadTare;
@ApiModelProperty(value = "装货净重(单位吨)", example = "1.23")
@NotNull(message = "装货净重不能为空")
@Max(value = 999, message = "最大999吨")
private BigDecimal loadNet;
@ApiModelProperty(value = "磅单图片列表")
......
......@@ -5,6 +5,7 @@ import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import javax.validation.constraints.Max;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
......@@ -25,13 +26,12 @@ public class OrderChildUnloadParam extends PositionParam {
private String unloadPoundNo;
@ApiModelProperty(value = "卸货毛重(单位吨)", example = "2.46")
@NotNull(message = "装货毛重不能为空")
private BigDecimal unloadRough;
@ApiModelProperty(value = "卸货皮重(单位吨)", example = "1.23")
@NotNull(message = "装货皮重不能为空")
private BigDecimal unloadTare;
@ApiModelProperty(value = "卸货净重(单位吨)", example = "1.23")
@NotNull(message = "装货净重不能为空")
@Max(value = 999, message = "最大999吨")
private BigDecimal unloadNet;
@ApiModelProperty(value = "磅单图片列表")
......
......@@ -29,6 +29,9 @@ public class OrderChildPoundInfoVO {
private BigDecimal unloadTare;
@ApiModelProperty(value = "卸货净重(单位吨)", example = "1.23")
private BigDecimal unloadNet;
@ApiModelProperty(value = "卸货磅单编号", example = "url")
private String unloadPoundNo;
@ApiModelProperty(value = "拉运重量(单位吨)", example = "1.23")
private BigDecimal weight;
@ApiModelProperty(value = "运费(元)", example = "1.23")
......
......@@ -34,6 +34,15 @@ public class CarrierOrderChildDetailVO {
@MoneyOutConvert
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")
@MoneyOutConvert
......@@ -43,6 +52,9 @@ public class CarrierOrderChildDetailVO {
@MoneyOutConvert
private BigDecimal orderFreightPrice;
@ApiModelProperty("货物重量")
private BigDecimal extractWeight;
@ApiModelProperty(value = "发货地址", example = "朝阳")
private String sendAddress;
......
......@@ -41,6 +41,9 @@ public class OrderChildPoundAuditDetailVO {
@ApiModelProperty(value="卸车磅单图片")
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;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotBlank;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.concurrent.ConcurrentHashMap;
......@@ -60,7 +61,14 @@ public class CarrierOrderChildController {
public Result<List<OrderChildStatusVO>> getOrderChildStatusList() {
ConcurrentHashMap<Integer, String> map = OrderChildEnum.map;
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);
}
......
......@@ -19,7 +19,7 @@ public interface OrderChildImageDao extends BaseDao<OrderChildImageMapper, Order
boolean deleteUnload(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);
......
......@@ -18,8 +18,12 @@ public interface OrderGoodsTruckBindDao extends BaseDao<OrderGoodsTruckBindMappe
void saveBatchEntity(String orderNo, String orderGoodsNo, List<String> trackList, LocalDateTime now);
boolean updateStatus(OrderGoodsTruckBind item);
List<Integer> getTrucksByOrderGoodsNo(String orderGoodsNo);
Optional<OrderGoodsTruckBind> getByOrderGoodsNoAndTruckNo(String orderGoodsNo, String truckNo);
Optional<OrderGoodsTruckBind> getValidByOrderGoodsNoAndTruckNo(String orderGoodsNo, String truckNo);
Optional<List<OrderGoodsTruckBind>> selectListByTruckNo(List<String> truckList);
}
......@@ -7,6 +7,7 @@ import com.msl.common.base.Optional;
import com.msl.common.dao.impl.BaseDaoImpl;
import org.springframework.stereotype.Repository;
import java.util.Collections;
import java.util.List;
/**
......@@ -54,9 +55,9 @@ public class OrderChildImageImpl extends BaseDaoImpl<OrderChildImageMapper, Orde
}
@Override
public Optional<List<OrderChildImage>> getImages(String childNo, Integer type) {
public List<OrderChildImage> getImages(String childNo, Integer type) {
return Optional.ofEmpty(list(lQrWrapper()
.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
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
public List<Integer> getTrucksByOrderGoodsNo(String orderGoodsNo) {
return baseMapper.getTrucksByOrderGoodsNo(orderGoodsNo);
......@@ -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
public Optional<List<OrderGoodsTruckBind>> selectListByTruckNo(List<String> truckList) {
return Optional.ofNullable(baseMapper.selectList(new QueryWrapper<OrderGoodsTruckBind>().lambda()
......
......@@ -11,6 +11,7 @@ import lombok.NoArgsConstructor;
import lombok.Setter;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.Optional;
......@@ -36,8 +37,8 @@ public class OrderChildPoundAudit implements HasKey<Integer> {
private Integer status; //审核状态 0 待审核 1 审核通过 2 审核驳回
private Integer rejectType; //审核驳回类型:1装车 2卸车 3装车+卸车
private String remark; //备注
private String createTime; //创建时间
private String modifiedTime; //修改时间
private LocalDateTime createTime; //创建时间
private LocalDateTime modifiedTime; //修改时间
@KeyColumn("id")
@Override
......
......@@ -7,11 +7,14 @@ import com.baomidou.mybatisplus.annotation.TableName;
import com.msl.common.config.KeyColumn;
import com.msl.common.model.HasKey;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.Optional;
/**
* 货单定向绑定车辆表
......@@ -30,7 +33,7 @@ public class OrderGoodsTruckBind implements HasKey<Integer> {
private String truckNo;
@TableField("status")
@ApiModelProperty("1:正常 2:取消")
@ApiModelProperty("状态 1:正常 2:取消 3: 已接单")
private Integer status;
@TableField("order_no")
......@@ -55,4 +58,21 @@ public class OrderGoodsTruckBind implements HasKey<Integer> {
public Integer gainKey() {
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;
import com.clx.performance.dao.*;
import com.clx.performance.enums.OrderChildEnum;
import com.clx.performance.enums.OrderChildLogEnum;
import com.clx.performance.enums.OrderChildPoundAuditEnum;
import com.clx.performance.enums.PerformanceResultEnum;
import com.clx.performance.enums.*;
import com.clx.performance.model.*;
import com.clx.performance.param.pc.OrderChildCarrierCancelParam;
import com.clx.performance.param.pc.PoundAuditParam;
......@@ -35,6 +32,7 @@ import java.util.stream.Collectors;
@AllArgsConstructor
public class OrderChildPoundAuditServiceImpl implements OrderChildPoundAuditService {
private final OrderGoodsTruckBindDao orderGoodsTruckBindDao;
private final OrderChildImageDao orderChildImageDao;
private final OrderChildPoundAuditDao orderChildPoundAuditDao;
......@@ -51,8 +49,8 @@ public class OrderChildPoundAuditServiceImpl implements OrderChildPoundAuditSer
@Override
public OrderChildPoundAuditDetailVO getPoundAuditDetail(String childNo) {
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> unloadImages = orderChildImageDao.getImages(childNo, OrderChildImage.Type.UNLOAD.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());
OrderChildPoundAuditDetailVO vo = new OrderChildPoundAuditDetailVO();
vo.setChildNo(childNo);
vo.setLoadImages(loadImages.stream().map(OrderChildImage::getImage).collect(Collectors.toList()));
......@@ -142,6 +140,13 @@ public class OrderChildPoundAuditServiceImpl implements OrderChildPoundAuditSer
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.setCancelTime(now);
orderChild.setFinishTime(now);
......@@ -150,7 +155,10 @@ public class OrderChildPoundAuditServiceImpl implements OrderChildPoundAuditSer
orderChildDao.updateCancel(orderChild);
// 返回吨数
cancelReturnWeight(orderChild, orderGoods);
updateOrderGoodsAmountReturn(orderChild, orderGoods);
// 取消定向
updateOrderGoodsDirectCancel(orderGoodsTruckBind);
// 释放司机、车辆
releaseDriver(orderChild.getDriverUserNo());
......@@ -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);
}
/**
......
......@@ -97,7 +97,7 @@ public class OrderGoodsSqlProvider {
WHERE("a.last_arrive_send_time >= now()");
WHERE("(a.order_goods_status = 20 or a.order_goods_status = 30)");
WHERE("a.residue_transport_weight >0");
ORDER_BY("a.create_time desc");
ORDER_BY("a.pending_order_time desc");
}}.toString();
return sql;
}
......@@ -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();
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论