提交 918a6d15 authored 作者: aiqingguo's avatar aiqingguo

运单流程

上级 2f92560f
......@@ -10,7 +10,7 @@ import javax.validation.constraints.NotBlank;
@Getter
@Setter
@NoArgsConstructor
public class OrderChildArriveReceiveAddressParam {
public class OrderChildArriveReceiveAddressParam extends PositionParam {
@ApiModelProperty(value = "运单编号", example = "100000000")
@NotBlank(message = "运单编号不能为空")
......
......@@ -10,7 +10,7 @@ import javax.validation.constraints.NotBlank;
@Getter
@Setter
@NoArgsConstructor
public class OrderChildArriveSendAddressParam {
public class OrderChildArriveSendAddressParam extends PositionParam {
@ApiModelProperty(value = "运单编号", example = "100000000")
@NotBlank(message = "运单编号不能为空")
......
......@@ -10,7 +10,7 @@ import javax.validation.constraints.NotBlank;
@Getter
@Setter
@NoArgsConstructor
public class OrderChildDriverCancelParam {
public class OrderChildDriverCancelParam extends PositionParam {
@ApiModelProperty(value = "运单编号", example = "100000000")
@NotBlank(message = "运单编号不能为空")
......
......@@ -10,7 +10,7 @@ import javax.validation.constraints.NotBlank;
@Getter
@Setter
@NoArgsConstructor
public class OrderChildDriverConfirmParam {
public class OrderChildDriverConfirmParam extends PositionParam {
@ApiModelProperty(value = "运单编号", example = "100000000")
@NotBlank(message = "运单编号不能为空")
......
package com.clx.performance.param.app;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
@Getter
@Setter
@NoArgsConstructor
public class OrderChildEstimatedFreightParam {
@ApiModelProperty(value = "运单编号", example = "100000000")
@NotBlank(message = "运单编号不能为空")
private String childNo;
@ApiModelProperty(value = "装货净重(单位吨)", example = "1.23")
@NotNull(message = "装货净重不能为空")
private BigDecimal loadNet;
}
......@@ -10,7 +10,7 @@ import javax.validation.constraints.NotBlank;
@Getter
@Setter
@NoArgsConstructor
public class OrderChildGoToReceiveAddressParam {
public class OrderChildGoToReceiveAddressParam extends PositionParam {
@ApiModelProperty(value = "运单编号", example = "100000000")
@NotBlank(message = "运单编号不能为空")
......
......@@ -10,7 +10,7 @@ import javax.validation.constraints.NotBlank;
@Getter
@Setter
@NoArgsConstructor
public class OrderChildGoToSendAddressParam {
public class OrderChildGoToSendAddressParam extends PositionParam {
@ApiModelProperty(value = "运单编号", example = "100000000")
@NotBlank(message = "运单编号不能为空")
......
......@@ -14,7 +14,7 @@ import java.util.List;
@Getter
@Setter
@NoArgsConstructor
public class OrderChildLoadAndUnloadAgainParam {
public class OrderChildLoadAndUnloadAgainParam extends PositionParam {
@ApiModelProperty(value = "运单编号", example = "100000000")
@NotBlank(message = "运单编号不能为空")
......
......@@ -14,7 +14,7 @@ import java.util.List;
@Getter
@Setter
@NoArgsConstructor
public class OrderChildLoadParam {
public class OrderChildLoadParam extends PositionParam {
@ApiModelProperty(value = "运单编号", example = "100000000")
@NotBlank(message = "运单编号不能为空")
......
......@@ -11,7 +11,7 @@ import javax.validation.constraints.NotNull;
@Getter
@Setter
@NoArgsConstructor
public class OrderChildSaveParam {
public class OrderChildSaveParam extends PositionParam {
@ApiModelProperty(value = "货单编号", example = "100000000")
@NotBlank(message = "货单编号不能为空")
......
......@@ -14,7 +14,7 @@ import java.util.List;
@Getter
@Setter
@NoArgsConstructor
public class OrderChildUnloadParam {
public class OrderChildUnloadParam extends PositionParam {
@ApiModelProperty(value = "运单编号", example = "100000000")
@NotBlank(message = "运单编号不能为空")
......
package com.clx.performance.param.app;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.math.BigDecimal;
@Getter
@Setter
@NoArgsConstructor
public class PositionParam {
@ApiModelProperty(value = "经度")
private BigDecimal longitude;
@ApiModelProperty(value = "纬度")
private BigDecimal latitude;
}
package com.clx.performance.vo.app;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.math.BigDecimal;
@Getter
@Setter
@NoArgsConstructor
public class Address{
@ApiModelProperty(value="详细地址")
private String addressDetail;
@ApiModelProperty(value="地址简称")
private String address;
@ApiModelProperty(value = "经度")
private BigDecimal longitude;
@ApiModelProperty(value = "纬度")
private BigDecimal latitude;
@ApiModelProperty(value="联系人")
private String contact;
@ApiModelProperty(value="联系电话")
private String contactPhone;
}
\ No newline at end of file
package com.clx.performance.vo.app;
import com.msl.common.convertor.type.MoneyOutConvert;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.math.BigDecimal;
@Getter
@Setter
@NoArgsConstructor
public class OrderChildEstimatedFreightVO {
@ApiModelProperty(value = "运费(元)", example = "12.34")
@MoneyOutConvert
private BigDecimal freight;
}
package com.clx.performance.vo.app;
import com.msl.common.convertor.type.MoneyOutConvert;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import java.math.BigDecimal;
@Getter
@Setter
@ToString
@NoArgsConstructor
public class OrderChildFreightInfoVO {
@ApiModelProperty(value = "货物id", example = "1")
private Integer goodsId;
@ApiModelProperty(value = "货物名称", example = "煤")
private String goodsName;
@ApiModelProperty(value = "运费单价(元)", example = "1.23")
@MoneyOutConvert
private BigDecimal freightPrice;
@ApiModelProperty(value = "装货毛重(单位吨)", example = "1.23")
private BigDecimal loadRough;
@ApiModelProperty(value = "装货皮重(单位吨)", example = "1.23")
private BigDecimal loadTare;
@ApiModelProperty(value = "装货净重(单位吨)", example = "1.23")
private BigDecimal loadNet;
@ApiModelProperty(value = "卸货毛重(单位吨)", example = "1.23")
private BigDecimal unloadRough;
@ApiModelProperty(value = "卸货皮重(单位吨)", example = "1.23")
private BigDecimal unloadTare;
@ApiModelProperty(value = "卸货净重(单位吨)", example = "1.23")
private BigDecimal unloadNet;
@ApiModelProperty(value = "拉运重量(单位吨)", example = "1.23")
private BigDecimal weight;
@ApiModelProperty(value = "运费(元)(实际运费)", example = "1.23")
@MoneyOutConvert
private BigDecimal freight;
@ApiModelProperty(value = "总运费(元)", example = "1.23")
@MoneyOutConvert
private BigDecimal totalFreight;
public BigDecimal getTotalFreight() {
return freight;
}
@ApiModelProperty(value = "状态", example = "0")
private Integer status;
}
\ No newline at end of file
package com.clx.performance.vo.app;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import java.math.BigDecimal;
import java.util.List;
@Getter
@Setter
@ToString
@NoArgsConstructor
public class OrderChildPoundInfoVO {
@ApiModelProperty(value = "装货毛重(单位吨)", example = "1.23")
private BigDecimal loadRough;
@ApiModelProperty(value = "装货皮重(单位吨)", example = "1.23")
private BigDecimal loadTare;
@ApiModelProperty(value = "装货净重(单位吨)", example = "1.23")
private BigDecimal loadNet;
@ApiModelProperty(value = "卸货毛重(单位吨)", example = "1.23")
private BigDecimal unloadRough;
@ApiModelProperty(value = "卸货皮重(单位吨)", example = "1.23")
private BigDecimal unloadTare;
@ApiModelProperty(value = "卸货净重(单位吨)", example = "1.23")
private BigDecimal unloadNet;
@ApiModelProperty(value = "拉运重量(单位吨)", example = "1.23")
private BigDecimal weight;
@ApiModelProperty(value = "磅单审核状态 0 待审核 1 审核通过 2 审核驳回", example = "0")
private Integer poundStatus;
@ApiModelProperty(value = "磅单审核驳回原因", example = "交货信息错误")
private String poundRemark;
@ApiModelProperty(value = "状态", example = "0")
private Integer status;
@ApiModelProperty(value = "装车磅单图片列表")
private List<String> loadImageList;
@ApiModelProperty(value = "卸车磅单图片列表")
private List<String> unloadImageList;
}
\ No newline at end of file
package com.clx.performance.vo.app;
import com.clx.performance.enums.OrderChildEnum;
import com.msl.common.convertor.type.MoneyOutConvert;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
......@@ -25,74 +26,83 @@ import java.util.List;
@NoArgsConstructor
public class OrderChildVO {
@ApiModelProperty(value = "id", example = "")
@ApiModelProperty(value = "id", example = "1")
private Integer id;
@ApiModelProperty(value = "用户编号", example = "")
@ApiModelProperty(value = "用户编号", example = "10000000000")
private Long userNo;
@ApiModelProperty(value = "货主用户编号", example = "")
@ApiModelProperty(value = "货主用户编号", example = "100000000")
private Long ownerUserNo;
@ApiModelProperty(value = "货主名称", example = "")
@ApiModelProperty(value = "货主名称", example = "张三")
private String ownerName;
@ApiModelProperty(value = "运单编号", example = "")
@ApiModelProperty(value = "运单编号", example = "100000000")
private String childNo;
@ApiModelProperty(value = "货单编号", example = "")
@ApiModelProperty(value = "货单编号", example = "100000000")
private String orderGoodsNo;
@ApiModelProperty(value = "订单编号", example = "")
@ApiModelProperty(value = "订单编号", example = "10000000000")
private String orderNo;
@ApiModelProperty(value = "货物id", example = "")
@ApiModelProperty(value = "货物id", example = "1")
private Integer goodsId;
@ApiModelProperty(value = "货物名称", example = "")
@ApiModelProperty(value = "货物名称", example = "")
private String goodsName;
@ApiModelProperty(value = "运费单价(分)", example = "")
@ApiModelProperty(value = "运费单价(元)", example = "1.23")
@MoneyOutConvert
private BigDecimal freightPrice;
@ApiModelProperty(value = "发货地址id", example = "")
@ApiModelProperty(value = "发货地址id", example = "1")
private Integer sendAddressId;
@ApiModelProperty(value = "发货地址", example = "")
@ApiModelProperty(value = "发货地址", example = "朝阳")
private String sendAddress;
@ApiModelProperty(value = "收货地址id", example = "")
@ApiModelProperty(value = "收货地址id", example = "2")
private Integer receiveAddressId;
@ApiModelProperty(value = "收货地址", example = "")
@ApiModelProperty(value = "收货地址", example = "西城")
private String receiveAddress;
@ApiModelProperty(value = "最晚装货时间", example = "")
private String loadDeadline;
@ApiModelProperty(value = "车辆ID", example = "")
@ApiModelProperty(value = "车辆ID", example = "1")
private Integer truckId;
@ApiModelProperty(value = "车牌号", example = "")
@ApiModelProperty(value = "车牌号", example = "京A12345")
private String truckNo;
@ApiModelProperty(value = "载重(单位吨)", example = "")
@ApiModelProperty(value = "载重(单位吨)", example = "12.34")
private BigDecimal truckLoad;
@ApiModelProperty(value = "司机用户编号", example = "")
@ApiModelProperty(value = "车型", example = "挂车")
private String truckModel;
@ApiModelProperty(value = "司机用户编号", example = "1000000")
private Long driverUserNo;
@ApiModelProperty(value = "司机姓名", example = "")
@ApiModelProperty(value = "司机姓名", example = "张三")
private String driverName;
@ApiModelProperty(value = "司机手机号", example = "")
@ApiModelProperty(value = "司机手机号", example = "130000000")
private String driverMobile;
@ApiModelProperty(value = "装货毛重(单位吨)", example = "")
@ApiModelProperty(value = "装货毛重(单位吨)", example = "1.23")
private BigDecimal loadRough;
@ApiModelProperty(value = "装货皮重(单位吨)", example = "")
@ApiModelProperty(value = "装货皮重(单位吨)", example = "1.23")
private BigDecimal loadTare;
@ApiModelProperty(value = "装货净重(单位吨)", example = "")
@ApiModelProperty(value = "装货净重(单位吨)", example = "1.23")
private BigDecimal loadNet;
@ApiModelProperty(value = "卸货毛重(单位吨)", example = "")
@ApiModelProperty(value = "卸货毛重(单位吨)", example = "1.23")
private BigDecimal unloadRough;
@ApiModelProperty(value = "卸货皮重(单位吨)", example = "")
@ApiModelProperty(value = "卸货皮重(单位吨)", example = "1.23")
private BigDecimal unloadTare;
@ApiModelProperty(value = "卸货净重(单位吨)", example = "")
@ApiModelProperty(value = "卸货净重(单位吨)", example = "1.23")
private BigDecimal unloadNet;
@ApiModelProperty(value = "卸货磅单编号", example = "")
private String unloadPoundNo;
@ApiModelProperty(value = "拉运重量(单位吨)", example = "")
@ApiModelProperty(value = "拉运重量(单位吨)", example = "1.23")
private BigDecimal weight;
@ApiModelProperty(value = "运费(元)", example = "1.23")
@MoneyOutConvert
private BigDecimal freight;
@ApiModelProperty(value = "取消原因", example = "")
@ApiModelProperty(value = "取消原因", example = "抢错了")
private String cancelRemark;
@ApiModelProperty(value = "磅单审核状态 0 待审核 1 审核通过 2 审核驳回", example = "")
@ApiModelProperty(value = "磅单审核状态 0 待审核 1 审核通过 2 审核驳回", example = "0")
private Integer poundStatus;
@ApiModelProperty(value = "状态", example = "")
@ApiModelProperty(value = "磅单审核驳回原因", example = "交货信息错误")
private String poundRemark;
@ApiModelProperty(value = "状态", example = "0")
private Integer status;
@ApiModelProperty(value = "运输状态 0非运输中 1运输中", example = "1")
private Integer transitStatus;
......@@ -117,4 +127,9 @@ public class OrderChildVO {
@ApiModelProperty(value = "卸车磅单图片列表")
private List<String> unloadImageList;
@ApiModelProperty(value = "发货地址详情")
private Address sendAddressInfo;
@ApiModelProperty(value = "发货地址详情")
private Address receiveAddressInfo;
}
\ No newline at end of file
......@@ -5,15 +5,12 @@ import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import javax.validation.constraints.NotBlank;
@Getter
@Setter
@NoArgsConstructor
public class SaveOrderChildVO {
@ApiModelProperty(value = "运单编号", example = "100000000")
@NotBlank(message = "运单编号不能为空")
private String childNo;
}
......@@ -3,9 +3,9 @@ package com.clx.performance.controller.app;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.param.app.*;
import com.clx.performance.service.OrderChildService;
import com.clx.performance.vo.app.OrderChildVO;
import com.clx.performance.vo.app.SaveOrderChildVO;
import com.clx.performance.vo.app.*;
import com.msl.common.base.PageData;
import com.msl.common.convertor.aspect.UnitCovert;
import com.msl.common.result.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
......@@ -112,6 +112,7 @@ public class AppDriverOrderChildController {
}
@ApiOperation(value = "查询运单详情", notes = "<br>By:艾庆国")
@UnitCovert(param = false)
@GetMapping("/getOrderChildInfo")
public Result<OrderChildVO> getOrderChildInfo(String childNo) {
......@@ -132,4 +133,27 @@ public class AppDriverOrderChildController {
return Result.page(page.getRecords(), page.getTotal(), page.getPages());
}
@ApiOperation(value = "查询预估运费", notes = "<br>By:艾庆国")
@UnitCovert(param = false)
@PostMapping("/getEstimatedFreight")
public Result<OrderChildEstimatedFreightVO> getEstimatedFreight(@RequestBody @Validated OrderChildEstimatedFreightParam param) {
return Result.ok(orderChildService.getEstimatedFreight(param));
}
@ApiOperation(value = "查询运单磅单信息", notes = "<br>By:艾庆国")
@GetMapping("/getOrderChildPoundInfo")
public Result<OrderChildPoundInfoVO> getOrderChildPoundInfo(String childNo) {
return Result.ok(orderChildService.getOrderChildPoundInfo(childNo));
}
@ApiOperation(value = "查询运单运费信息", notes = "<br>By:艾庆国")
@UnitCovert(param = false)
@GetMapping("/getOrderChildFreightInfo")
public Result<OrderChildFreightInfoVO> getOrderChildFreightInfo(String childNo) {
return Result.ok(orderChildService.getOrderChildFreightInfo(childNo));
}
}
package com.clx.performance.extranal.user;
import com.clx.order.vo.feign.FeignAddressVO;
import com.msl.common.base.Optional;
public interface AddressService {
Optional<FeignAddressVO> getSendAndReceiveAddress(Integer sendAddressId, Integer receiveAddressId);
}
package com.clx.performance.extranal.user.impl;
import com.clx.order.feign.AddressFeign;
import com.clx.order.vo.feign.FeignAddressVO;
import com.clx.performance.extranal.user.AddressService;
import com.msl.common.base.Optional;
import com.msl.common.result.Result;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@Service
@Slf4j
@AllArgsConstructor
public class AddressServiceImpl implements AddressService {
private final AddressFeign addressFeign;
@Override
public Optional<FeignAddressVO> getSendAndReceiveAddress(Integer sendAddressId, Integer receiveAddressId) {
return Optional.ofNullable(addressFeign.getSendAndReceiveAddress(sendAddressId, receiveAddressId))
.filter(Result::succeed)
.map(Result::getData);
}
}
......@@ -47,6 +47,8 @@ public class OrderChild implements HasKey<Integer> {
private Integer truckId; //车辆ID
private String truckNo; //车牌号
private BigDecimal truckLoad; //载重(单位吨)
private String truckModel; //车型
private Long driverUserNo; //司机用户编号
private String driverName; //司机姓名
private String driverMobile; //司机手机号
......@@ -69,6 +71,7 @@ public class OrderChild implements HasKey<Integer> {
private LocalDateTime payTime; //支付时间
private LocalDateTime loadTime; //装车时间
private LocalDateTime unloadTime; //卸车时间
private LocalDateTime finishTime; //完成时间
private LocalDateTime createTime; //创建时间
private LocalDateTime modifiedTime; //修改时间
......
......@@ -3,8 +3,7 @@ package com.clx.performance.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.param.app.*;
import com.clx.performance.param.pc.PagePoundAuditParam;
import com.clx.performance.vo.app.OrderChildVO;
import com.clx.performance.vo.app.SaveOrderChildVO;
import com.clx.performance.vo.app.*;
import com.clx.performance.vo.pc.OrderChildPCVO;
import com.clx.performance.vo.pc.PageOrderChildPoundAuditVO;
......@@ -39,6 +38,10 @@ public interface OrderChildService {
IPage<OrderChildVO> pageOrderChild(PageOrderChildOfDriverParam param);
IPage<OrderChildVO> pageSearchOrderChild(PageOrderChildOfDriverSearchParam param);
OrderChildEstimatedFreightVO getEstimatedFreight(OrderChildEstimatedFreightParam param);
OrderChildPoundInfoVO getOrderChildPoundInfo(String childNo);
OrderChildFreightInfoVO getOrderChildFreightInfo(String childNo);
IPage<PageOrderChildPoundAuditVO> pagePoundAuditList(PagePoundAuditParam param);
List<OrderChildPCVO> getOrderChildInfoByOrderGoodsNo(String orderGoodsNo);
......
package com.clx.performance.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.order.vo.feign.FeignAddressVO;
import com.clx.performance.dao.OrderChildDao;
import com.clx.performance.dao.OrderChildImageDao;
import com.clx.performance.dao.OrderChildPoundAuditDao;
import com.clx.performance.dao.OrderGoodsDao;
import com.clx.performance.enums.*;
import com.clx.performance.extranal.user.AddressService;
import com.clx.performance.extranal.user.DriverService;
import com.clx.performance.model.OrderChild;
import com.clx.performance.model.OrderChildImage;
......@@ -17,13 +19,12 @@ 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.struct.OrderChildPoundImageStruct;
import com.clx.performance.struct.OrderChildStruct;
import com.clx.performance.vo.app.OrderChildVO;
import com.clx.performance.vo.app.SaveOrderChildVO;
import com.clx.performance.struct.*;
import com.clx.performance.vo.app.*;
import com.clx.performance.vo.pc.OrderChildPCVO;
import com.clx.performance.vo.pc.PageOrderChildPoundAuditVO;
import com.clx.user.vo.feign.DriverTruckInfoFeignVo;
import com.msl.common.base.Optional;
import com.msl.common.enums.ResultCodeEnum;
import com.msl.common.exception.ServiceSystemException;
import com.msl.common.utils.DateUtils;
......@@ -38,8 +39,8 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
......@@ -67,11 +68,15 @@ public class OrderChildServiceImpl implements OrderChildService {
private final OrderChildLogService orderChildLogService;
private final OrderChildPoundLogService orderChildPoundLogService;
private final AddressService addressService;
private final DriverService driverService;
private final OrderChildStruct orderChildStruct;
private final OrderChildPoundImageStruct orderChildPoundImageStruct;
private final OrderGoodsService orderGoodsService;
private final OrderChildPoundStruct orderChildPoundStruct;
private final OrderChildFreightStruct orderChildFreightStruct;
private final AddressStruct addressStruct;
private final UniqueOrderNumService uniqueOrderNumService;
......@@ -85,7 +90,7 @@ public class OrderChildServiceImpl implements OrderChildService {
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
Long userNo = loginUserInfo.getUserNo();
String childNo = "CYD"+uniqueOrderNumService.getUniqueOrderNum(LocalDateTimeUtils.convertLocalDateTimeToString(LocalDateTime.now(),LocalDateTimeUtils.DATE_DAY));
String childNo = childNoGenerate();
// 查询司机车辆信息
DriverTruckInfoFeignVo driverTruckInfo = driverService.getUserDetailInfo(param.getDriverUserNo(), param.getTruckId()).orElseThrow(ResultCodeEnum.FAIL);
......@@ -133,6 +138,7 @@ public class OrderChildServiceImpl implements OrderChildService {
orderChild.setTruckId(driverTruckInfo.getTruckId());
orderChild.setTruckNo(driverTruckInfo.getTruckNo());
orderChild.setTruckLoad(truckLoad);
orderChild.setTruckModel(driverTruckInfo.getModel());
orderChild.setWeight(orderChild.getTruckLoad());
orderChild.setFreight(orderChildFreightCalc(orderChild));
......@@ -620,10 +626,23 @@ public class OrderChildServiceImpl implements OrderChildService {
OrderChildVO result = orderChildStruct.convert(orderChild);
// 磅单
if (Objects.equals(orderChild.getPoundStatus(), OrderChildPoundAuditEnum.Status.REJECT.getCode())){
result.setPoundRemark(orderChildPoundAuditDao.getPoundAuditDetail(childNo).orNull().getRemark());
}
List<OrderChildImage> imageList = orderChildImageDao.listLoadAndUnload(childNo).orElse(new ArrayList<>());
result.setLoadImageList(imageList.stream().filter(item->Objects.equals(item.getId(),OrderChildImage.Type.LOAD.getCode())).map(item->item.getImage()).collect(Collectors.toList()));
result.setUnloadImageList(imageList.stream().filter(item->Objects.equals(item.getId(),OrderChildImage.Type.UNLOAD.getCode())).map(item->item.getImage()).collect(Collectors.toList()));
// 地址
Optional<FeignAddressVO> sendAndReceiveAddress = addressService.getSendAndReceiveAddress(orderChild.getSendAddressId(), orderChild.getReceiveAddressId());
if (sendAndReceiveAddress.isPresent()){
result.setSendAddressInfo(addressStruct.convert(sendAndReceiveAddress.get().getSendAddress()));
}
if (sendAndReceiveAddress.isPresent()){
result.setReceiveAddressInfo(addressStruct.convert(sendAndReceiveAddress.get().getReceiveAddress()));
}
return result;
}
......@@ -646,6 +665,61 @@ public class OrderChildServiceImpl implements OrderChildService {
return orderChildDao.pageSearchOrderChildOfDriver(param);
}
@Override
public OrderChildEstimatedFreightVO getEstimatedFreight(OrderChildEstimatedFreightParam param) {
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
Long userNo = loginUserInfo.getUserNo();
String childNo = param.getChildNo();
OrderChild orderChild = orderChildDao.getByChildNo(childNo).orElseThrow(PerformanceResultEnum.ORDER_CHILD_NO_FOUND);
if (!Objects.equals(orderChild.getUserNo(), userNo) && !Objects.equals(orderChild.getDriverUserNo(), userNo)){
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_NO_FOUND);
}
OrderChildEstimatedFreightVO result = new OrderChildEstimatedFreightVO();
result.setFreight(orderChild.getFreightPrice().multiply(param.getLoadNet()).setScale(0, RoundingMode.HALF_UP));
return result;
}
@Override
public OrderChildPoundInfoVO getOrderChildPoundInfo(String childNo) {
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
Long userNo = loginUserInfo.getUserNo();
OrderChild orderChild = orderChildDao.getByChildNo(childNo).orElseThrow(PerformanceResultEnum.ORDER_CHILD_NO_FOUND);
if (!Objects.equals(orderChild.getUserNo(), userNo) && !Objects.equals(orderChild.getDriverUserNo(), userNo)){
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_NO_FOUND);
}
OrderChildPoundInfoVO result = orderChildPoundStruct.convert(orderChild);
if (Objects.equals(orderChild.getPoundStatus(), OrderChildPoundAuditEnum.Status.REJECT.getCode())){
result.setPoundRemark(orderChildPoundAuditDao.getPoundAuditDetail(childNo).orNull().getRemark());
}
List<OrderChildImage> imageList = orderChildImageDao.listLoadAndUnload(childNo).orElse(new ArrayList<>());
result.setLoadImageList(imageList.stream().filter(item->Objects.equals(item.getId(),OrderChildImage.Type.LOAD.getCode())).map(item->item.getImage()).collect(Collectors.toList()));
result.setUnloadImageList(imageList.stream().filter(item->Objects.equals(item.getId(),OrderChildImage.Type.UNLOAD.getCode())).map(item->item.getImage()).collect(Collectors.toList()));
return result;
}
@Override
public OrderChildFreightInfoVO getOrderChildFreightInfo(String childNo) {
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
Long userNo = loginUserInfo.getUserNo();
OrderChild orderChild = orderChildDao.getByChildNo(childNo).orElseThrow(PerformanceResultEnum.ORDER_CHILD_NO_FOUND);
if (!Objects.equals(orderChild.getUserNo(), userNo) && !Objects.equals(orderChild.getDriverUserNo(), userNo)){
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_NO_FOUND);
}
OrderChildFreightInfoVO result = orderChildFreightStruct.convert(orderChild);
return result;
}
/**
* 更新货单数据
......@@ -656,6 +730,14 @@ public class OrderChildServiceImpl implements OrderChildService {
orderGoodsService.updateOrderGoodsReduceWeightAndStatus(orderGoods.getId(), weight);
}
/**
* 更新定向单状态
*/
private void updateOrderGoods(OrderGoods orderGoods){
if (!Objects.equals(orderGoods.getPendingOrderWay(), 2)){return;}
}
/**
* 取消检测
*/
......@@ -672,6 +754,7 @@ public class OrderChildServiceImpl implements OrderChildService {
* 取消返吨数
*/
private void cancelReturnWeight(OrderChild orderChild, OrderGoods orderGoods){
}
/**
......@@ -723,9 +806,7 @@ public class OrderChildServiceImpl implements OrderChildService {
* 创建运单号
*/
private String childNoGenerate(){
return DateTimeFormatter.ofPattern("yyyyMMddHHmmss").format(LocalDateTime.now());
return "CYD"+uniqueOrderNumService.getUniqueOrderNum(LocalDateTimeUtils.convertLocalDateTimeToString(LocalDateTime.now(),LocalDateTimeUtils.DATE_DAY));
}
@Override
......
......@@ -38,5 +38,4 @@ public class UniqueOrderNumService {
return new StringBuilder().append(date).append(orderNum).append(String.format("%02d", ThreadLocalRandom.current().nextInt(99))).toString();
}
}
package com.clx.performance.struct;
import com.clx.order.vo.feign.FeignAddressVO;
import com.clx.performance.vo.app.Address;
import com.msl.common.utils.DateStructUtil;
import org.apache.commons.lang3.StringUtils;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import java.util.Objects;
@Mapper(componentModel = "spring", uses = DateStructUtil.class, imports = {Objects.class})
public interface AddressStruct {
@Mapping(target = "address", source = "item.addressShorter")
@Mapping(target = "addressDetail", expression = "java(Objects.isNull(item)? null : addressDetail(item))")
Address convert(FeignAddressVO.Address item);
default String addressDetail(FeignAddressVO.Address item){
return (StringUtils.isBlank(item.getProvince())? "":item.getProvince())
+ (StringUtils.isBlank(item.getCity())? "":item.getCity())
+ (StringUtils.isBlank(item.getCounty())? "":item.getCounty())
+ (StringUtils.isBlank(item.getTown())? "":item.getTown())
+ (StringUtils.isBlank(item.getStreet())? "":item.getStreet())
+ (StringUtils.isBlank(item.getAddress())? "":item.getAddress());
}
}
package com.clx.performance.struct;
import com.clx.performance.model.OrderChild;
import com.clx.performance.vo.app.OrderChildFreightInfoVO;
import com.msl.common.utils.DateStructUtil;
import com.msl.common.utils.DateUtils;
import org.mapstruct.Mapper;
@Mapper(componentModel = "spring", uses = DateStructUtil.class, imports = {DateUtils.class})
public interface OrderChildFreightStruct {
OrderChildFreightInfoVO convert(OrderChild item);
}
package com.clx.performance.struct;
import com.clx.performance.model.OrderChild;
import com.clx.performance.vo.app.OrderChildPoundInfoVO;
import com.msl.common.utils.DateStructUtil;
import com.msl.common.utils.DateUtils;
import org.mapstruct.Mapper;
@Mapper(componentModel = "spring", uses = DateStructUtil.class, imports = {DateUtils.class})
public interface OrderChildPoundStruct {
OrderChildPoundInfoVO convert(OrderChild item);
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论