提交 5f36b8a7 authored 作者: huyufan's avatar huyufan

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
......@@ -94,8 +94,25 @@ public enum OrderChildEnum {
Status.LOAD.getCode(),
Status.GO_TO_RECEIVE.getCode(),
Status.ARRIVE_RECEIVE.getCode(),
Status.UNLOAD.getCode(),
Status.UNLOAD.getCode()
);
// 取消
public static final List<Integer> CANCEL_lIST = Arrays.asList(
Status.DRIVER_CANCEL.getCode(),
Status.PLATFORM_CANCEL.getCode()
);
// 结算
public static final List<Integer> SETTLE_lIST = Arrays.asList(
Status.COMPLETE.getCode()
);
// 完成
public static final List<Integer> FINISH_lIST = Arrays.asList(
Status.UNSETTLE.getCode()
);
......@@ -108,6 +125,4 @@ public enum OrderChildEnum {
}
}
}
......@@ -38,6 +38,7 @@ public enum OrderChildLogEnum {
DRIVER_CANCEL(110, "司机取消运单"),
OWNER_CANCEL(111, "货主取消运单"),
PLATFORM_CANCEL(112, "平台取消运单"),
;
......
package com.clx.performance.param.pc;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import javax.validation.constraints.NotBlank;
@Getter
@Setter
@NoArgsConstructor
public class OrderChildCarrierCancelParam {
@ApiModelProperty(value = "运单编号", example = "100000000")
@NotBlank(message = "运单编号不能为空")
private String childNo;
@ApiModelProperty(value = "取消原因", example = "信息错误")
@NotBlank(message = "取消原因不能为空")
private String remark;
}
......@@ -95,6 +95,12 @@ public class OrderChildVO {
@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 orderFreightPrice;
@ApiModelProperty(value = "取消原因", example = "抢错了")
private String cancelRemark;
......
......@@ -2,15 +2,13 @@ package com.clx.performance.controller.pc;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.enums.OrderChildEnum;
import com.clx.performance.param.pc.OrderChildCarrierCancelParam;
import com.clx.performance.param.pc.PageCarrierOrderChildParam;
import com.clx.performance.param.pc.PagePoundAuditParam;
import com.clx.performance.param.pc.PoundAuditParam;
import com.clx.performance.service.OrderChildPoundAuditService;
import com.clx.performance.service.OrderChildService;
import com.clx.performance.vo.pc.OrderChildPoundAuditDetailVO;
import com.clx.performance.vo.pc.OrderChildStatusVO;
import com.clx.performance.vo.pc.PageCarrierOrderChildVO;
import com.clx.performance.vo.pc.PageOrderChildPoundAuditVO;
import com.msl.common.base.PageData;
import com.msl.common.convertor.aspect.UnitCovert;
import com.msl.common.result.Result;
......@@ -22,7 +20,6 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotBlank;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ConcurrentHashMap;
import java.util.stream.Collectors;
......@@ -65,4 +62,12 @@ public class CarrierOrderChildController {
return Result.ok(result);
}
@ApiOperation(value = "取消运单", notes = "<br>By:艾庆国")
@PostMapping("/updateCancel")
public Result<Void> updateCarrierCancel(@RequestBody @Validated OrderChildCarrierCancelParam param) {
orderChildPoundAuditService.updateCarrierCancel(param);
return Result.ok();
}
}
......@@ -41,6 +41,9 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
public boolean updateCancel(OrderChild item) {
return update(lUdWrapper()
.eq(OrderChild::getChildNo, item.getChildNo())
.set(OrderChild::getCancelRemark, item.getCancelRemark())
.set(OrderChild::getCancelTime, item.getCancelTime())
.set(OrderChild::getFinishTime, item.getFinishTime())
.set(OrderChild::getStatus, item.getStatus())
);
}
......
......@@ -37,6 +37,8 @@ public class OrderChild implements HasKey<Integer> {
private Integer goodsId; //货物id
private String goodsName; //货物名称
private BigDecimal freightPrice; //运费单价(分)
private BigDecimal lossPrice; //损耗单价(分)
private BigDecimal orderFreightPrice; //订单运费单价(分)
private Integer sendAddressId; //发货地址id
private String sendAddress; //发货地址
......
......@@ -28,7 +28,7 @@ public class OrderChildLog implements HasKey<Integer> {
private String childNo; //运单编号
private Integer type; //类型
private String remark; //内容
private Integer createType; //操作人类型1,货主 2,承运端
private Integer createType; //操作人类型1-货主, 2-承运端,3-司机
private Long createBy; //操作人编号
private String createName; //操作人名称
private String createTime; //创建时间
......
......@@ -5,4 +5,6 @@ public interface OrderChildLogService {
void saveOrderChildLog(String childNo, Integer type, String remark,
Integer createType,Long createBy, String createName);
void saveDriverOrderChildLog(String childNo, Integer type, String remark, Long createBy, String createName);
void saveCarrierOrderChildLog(String childNo, Integer type, String remark, Long createBy, String createName);
}
package com.clx.performance.service;
import com.clx.performance.param.pc.OrderChildCarrierCancelParam;
import com.clx.performance.param.pc.PoundAuditParam;
import com.clx.performance.vo.pc.OrderChildPoundAuditDetailVO;
......@@ -16,4 +17,6 @@ public interface OrderChildPoundAuditService {
void updatePoundAudit(PoundAuditParam param);
void updateCarrierCancel(OrderChildCarrierCancelParam param);
}
......@@ -34,4 +34,11 @@ public class OrderChildLogServiceImpl implements OrderChildLogService {
public void saveDriverOrderChildLog(String childNo, Integer type, String remark, Long createBy, String createName) {
saveOrderChildLog(childNo, type, remark, OrderChildLogEnum.CreateType.DRIVER.getCode(), createBy, createName);
}
@Override
public void saveCarrierOrderChildLog(String childNo, Integer type, String remark, Long createBy, String createName) {
saveOrderChildLog(childNo, type, remark, OrderChildLogEnum.CreateType.PLATFORM.getCode(), createBy, createName);
}
}
package com.clx.performance.service.impl;
import com.clx.performance.dao.OrderChildDao;
import com.clx.performance.dao.OrderChildImageDao;
import com.clx.performance.dao.OrderChildPoundAuditDao;
import com.clx.performance.dao.OrderChildPoundLogDao;
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.model.*;
import com.clx.performance.param.pc.OrderChildCarrierCancelParam;
import com.clx.performance.param.pc.PoundAuditParam;
import com.clx.performance.service.OrderChildLogService;
import com.clx.performance.service.OrderChildPoundAuditService;
import com.clx.performance.vo.pc.OrderChildPoundAuditDetailVO;
import com.msl.common.exception.ServiceSystemException;
import com.msl.user.data.UserSessionData;
import com.msl.user.utils.TokenUtil;
import lombok.AllArgsConstructor;
......@@ -20,6 +20,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
......@@ -42,6 +43,8 @@ public class OrderChildPoundAuditServiceImpl implements OrderChildPoundAuditSer
private final OrderChildDao orderChildDao;
private final OrderGoodsDao orderGoodsDao;
private final OrderChildLogService orderChildLogService;
......@@ -116,4 +119,66 @@ public class OrderChildPoundAuditServiceImpl implements OrderChildPoundAuditSer
OrderChildLogEnum.CreateType.PLATFORM.getCode(), loginUserInfo.getUserNo(),loginUserInfo.getUserName());
}
@Override
public void updateCarrierCancel(OrderChildCarrierCancelParam param) {
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
Long userNo = loginUserInfo.getUserNo();
String childNo = param.getChildNo();
LocalDateTime now = LocalDateTime.now();
OrderChild orderChild = orderChildDao.getByChildNo(childNo).orElseThrow(PerformanceResultEnum.ORDER_CHILD_NO_FOUND);
if (OrderChildEnum.CANCEL_lIST.contains(orderChild.getStatus())){
return;
}
// 禁止取消 (卸车前取消)
if (orderChild.getStatus()>OrderChildEnum.Status.UNLOAD.getCode()) {
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_CANCEL_FORBID);
}
OrderGoods orderGoods = orderGoodsDao.getByOrderGoodsNo(orderChild.getOrderGoodsNo()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
orderChild.setCancelRemark(param.getRemark());
orderChild.setCancelTime(now);
orderChild.setFinishTime(now);
orderChild.setStatus(OrderChildEnum.Status.PLATFORM_CANCEL.getCode());
orderChildDao.updateCancel(orderChild);
// 返回吨数
cancelReturnWeight(orderChild, orderGoods);
// 释放司机、车辆
releaseDriver(orderChild.getDriverUserNo());
releaseTruck(orderChild.getTruckId());
// 日志
orderChildLogService.saveCarrierOrderChildLog(childNo, OrderChildLogEnum.Type.PLATFORM_CANCEL.getCode(), OrderChildLogEnum.Type.PLATFORM_CANCEL.getMsg(),
loginUserInfo.getUserNo(), loginUserInfo.getUserName());
}
/**
* 取消返吨数
*/
private void cancelReturnWeight(OrderChild orderChild, OrderGoods orderGoods){
}
/**
* 释放司机
*/
private void releaseDriver(Long driverNo){
}
/**
* 释放车辆
*/
private void releaseTruck(Integer truckId){
}
}
......@@ -114,14 +114,14 @@ public class OrderChildServiceImpl implements OrderChildService {
orderChild.setChildNo(childNo);
orderChild.setUserNo(userNo);
//--------------------
orderChild.setOwnerUserNo(orderGoods.getUserNo());
orderChild.setOwnerName(orderGoods.getUserName());
//--------------------
orderChild.setOrderNo(orderGoods.getOrderNo());
orderChild.setOrderGoodsNo(orderGoods.getOrderGoodsNo());
orderChild.setFreightPrice(orderGoods.getPendingOrderFreight());
orderChild.setLossPrice(orderGoods.getLossPrice());
orderChild.setOrderFreightPrice(BigDecimal.ZERO);
orderChild.setGoodsId(orderGoods.getGoodsId());
orderChild.setGoodsName(orderGoods.getGoodsName());
......@@ -151,6 +151,9 @@ public class OrderChildServiceImpl implements OrderChildService {
// 更新货单数据
updateOrderGoodsAmount(orderGoods, truckLoad);
// 更新定向单状态
updateOrderGoods(orderGoods);
// 新增运单
orderChildDao.saveEntity(orderChild);
......@@ -580,13 +583,13 @@ public class OrderChildServiceImpl implements OrderChildService {
Long userNo = loginUserInfo.getUserNo();
String childNo = param.getChildNo();
LocalDateTime now = LocalDateTime.now();
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);
}
if (Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.DRIVER_CANCEL.getCode())
|| Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.PLATFORM_CANCEL.getCode())){
if (OrderChildEnum.CANCEL_lIST.contains(orderChild.getStatus())){
return;
}
......@@ -600,6 +603,9 @@ public class OrderChildServiceImpl implements OrderChildService {
// 取消量验证
if (!cancelCountCheck(userNo)){throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_CANCEL_FORBID_COUNT);}
orderChild.setCancelRemark(param.getRemark());
orderChild.setCancelTime(now);
orderChild.setFinishTime(now);
orderChild.setStatus(OrderChildEnum.Status.DRIVER_CANCEL.getCode());
orderChildDao.updateCancel(orderChild);
......
......@@ -2,6 +2,7 @@ package com.clx.performance.sqlProvider;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.enums.OrderChildEnum;
import com.clx.performance.param.app.PageOrderChildOfDriverParam;
import com.clx.performance.param.app.PageOrderChildOfDriverSearchParam;
import com.clx.performance.param.pc.PageCarrierOrderChildParam;
......@@ -32,7 +33,21 @@ public class OrderChildSqlProvider {
FROM("order_child ");
WHERE("(user_no = #{param.userNo} or driver_user_no = #{param.userNo}) ");
// if (Objects.nonNull(param.getStatus())) {WHERE("status = #{param.status}");}
if (Objects.isNull(param.getStatus())) {
}
else if (param.getStatus() == 1){ //运输中
WHERE("status in (" + StringUtils.join(OrderChildEnum.TRANSIT_lIST, ",")+")");
}
else if (param.getStatus() == 2){ //完成
WHERE("status in (" + StringUtils.join(OrderChildEnum.FINISH_lIST, ",")+")");
}
else if (param.getStatus() == 3){ //已结算
WHERE("status in (" + StringUtils.join(OrderChildEnum.SETTLE_lIST, ",")+")");
}
else if (param.getStatus() == 4){ //取消
WHERE("status in (" + StringUtils.join(OrderChildEnum.CANCEL_lIST, ",")+")");
}
ORDER_BY("create_time desc");
}}.toString();
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论