提交 c6340cb6 authored 作者: aiqingguo's avatar aiqingguo

运单流程

上级 c337a6c0
......@@ -15,7 +15,7 @@ public enum OrderChildEnum {
CREATED(10, "已接单"),
PAYING(20, "支付中"),
PAY(20, "支付"),
GO_TO_SEND(30, "前往货源地"),
ARRIVE_SEND(40, "到达货源地"),
......@@ -24,7 +24,7 @@ public enum OrderChildEnum {
ARRIVE_RECEIVE(70 , "到达目的地"),
UNLOAD(80, "收货待确认"),
UNSETTLED(90, "待结算"),
UNSETTLE(90, "待结算"),
COMPLETE(100, "完成"),
......
......@@ -12,20 +12,27 @@ public enum OrderChildLogEnum {
@Getter
@AllArgsConstructor
public enum Type {
CREATED(1, "接单成功"),
CREATED(11, "接单成功"),
GO_TO_SEND(21, "前往货源地"),
ARRIVE_SEND(22, "到达货源地"),
GO_TO_RECEIVE(23, "前往目的地"),
ARRIVE_RECEIVE(24 , "到达目的地"),
PAY(21, "支付成功"),
LOAD(31, "提交装货信息"),
UNLOAD(32, "提交卸货信息"),
RELOAD(33, "修改装货信息"),
REUNLOAD(34, "修改卸货信息"),
RELOAD_AND_REUNLOAD(35, "修改装货、卸货信息"),
GO_TO_SEND(31, "前往货源地"),
ARRIVE_SEND(32, "到达货源地"),
GO_TO_RECEIVE(33, "前往目的地"),
ARRIVE_RECEIVE(34 , "到达目的地"),
DRIVER_CONFIRM(41, "司机确认收货"),
LOAD(41, "提交装货信息"),
UNLOAD(42, "提交卸货信息"),
RELOAD(43, "修改装货信息"),
REUNLOAD(44, "修改卸货信息"),
RELOAD_AND_REUNLOAD(45, "修改装货、卸货信息"),
DRIVER_CONFIRM(51, "司机确认收货"),
SETTLEMENT(61, "结算成功"),
POUND_AUDIT(71, "磅单审核通过"),
POUND_AUDIT_REJECT(72, "磅单审核驳回"),
COMPLETE(100, "完成"),
......
......@@ -35,6 +35,7 @@ public enum PerformanceResultEnum implements ResultEnum {
ORDER_NO_FOUND(1200, "货单不存在"),
ORDER_WEIGHT_LACK(1200, "剩余数量不足"),
ORDER_INVALID(1200, "无效的货单"),
ORDER_CHILD_NO_FOUND(1301, "运单不存在"),
......
......@@ -11,30 +11,21 @@ import lombok.ToString;
@Setter
@NoArgsConstructor
@ToString
public class PageOrderChildParam extends PageParam {
public class PageOrderChildOfDriverParam extends PageParam {
@ApiModelProperty(value="运单编号",example = "1000000")
private String childNo;
@ApiModelProperty(value="司机姓名",example = "张三")
private String driverName;
@ApiModelProperty(value="司机手机号",example = "13000000000")
private String driverMobile;
@ApiModelProperty(value="发货地址",example = "北京")
private String sendAddress;
@ApiModelProperty(value="收货地址",example = "黄羊城")
private String receiveAddress;
@ApiModelProperty(value = "搜索内容", example = "北京")
private String content;
@ApiModelProperty(value="状态",example = "1")
private Integer status;
@ApiModelProperty(value="开始时间",example = "2020-01-01 10:10:10")
@ApiModelProperty(value="开始时间")
private String beginTime;
@ApiModelProperty(value = "结束时间",example = "2020-01-01 10:10:10")
@ApiModelProperty(value = "结束时间")
private String endTime;
@ApiModelProperty(value = "用户编号", hidden = true)
private Long userNo;
}
......@@ -31,6 +31,8 @@ public class OrderChildVO {
private Long userNo;
@ApiModelProperty(value = "货主用户编号", example = "")
private Long ownerUserNo;
@ApiModelProperty(value = "货主名称", example = "")
private String ownerName;
@ApiModelProperty(value = "运单编号", example = "")
private String childNo;
@ApiModelProperty(value = "货单编号", example = "")
......@@ -83,10 +85,13 @@ public class OrderChildVO {
@ApiModelProperty(value = "拉运重量(单位吨)", example = "")
private BigDecimal weight;
@ApiModelProperty(value = "磅单审核状态", example = "")
@ApiModelProperty(value = "取消原因", example = "")
private String cancelRemark;
@ApiModelProperty(value = "磅单审核状态 0 待审核 1 审核通过 2 审核驳回", example = "")
private Integer poundStatus;
@ApiModelProperty(value = "状态", example = "")
private Integer status;
@ApiModelProperty(value = "支付时间", example = "")
private String payTime;
@ApiModelProperty(value = "装车时间", example = "")
......
......@@ -123,7 +123,7 @@ public class AppDriverOrderChildController {
@ApiOperation(value = "分页查询运单列表",notes = "<br>By:艾庆国")
@PostMapping("/pageOrderChild")
public Result<PageData<OrderChildVO>> pageOrderChild(@RequestBody PageOrderChildParam param) {
public Result<PageData<OrderChildVO>> pageOrderChild(@RequestBody PageOrderChildOfDriverParam param) {
IPage<OrderChildVO> page = orderChildService.pageOrderChild(param);
return Result.page(page.getRecords(), page.getTotal(), page.getPages());
}
......
......@@ -3,7 +3,9 @@ package com.clx.performance.dao;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.mapper.OrderChildMapper;
import com.clx.performance.model.OrderChild;
import com.clx.performance.param.app.PageOrderChildOfDriverParam;
import com.clx.performance.param.pc.PagePoundAuditParam;
import com.clx.performance.vo.app.OrderChildVO;
import com.clx.performance.vo.pc.PageOrderChildPoundAuditVO;
import com.msl.common.base.Optional;
import com.msl.common.dao.BaseDao;
......@@ -18,18 +20,19 @@ import java.time.LocalDateTime;
*/
public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Integer> {
boolean updateStatus(OrderChild item);
boolean updateCancel(OrderChild item);
boolean updateLoad(OrderChild item);
boolean updateLoad(OrderChild item);
boolean updateUnload(OrderChild item);
boolean updateLoadAndUnload(OrderChild item);
boolean updateDriverConfirm(OrderChild item);
boolean updateStatus(OrderChild item);
Optional<OrderChild> getByChildNo(String childNo);
long countOfCancel(Long userNo, LocalDateTime startTime, LocalDateTime endTime);
IPage<OrderChildVO> pageOrderChildOfDriver(PageOrderChildOfDriverParam param);
IPage<PageOrderChildPoundAuditVO> pagePoundAuditList(PagePoundAuditParam param);
......
......@@ -2,11 +2,14 @@ package com.clx.performance.dao;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.order.params.PageOrderGoodsListParam;
import com.clx.performance.mapper.OrderGoodsMapper;
import com.clx.performance.model.OrderGoods;
import com.clx.performance.vo.pc.OrderGoodsVO;
import com.msl.common.base.Optional;
import com.msl.common.dao.BaseDao;
import com.clx.performance.mapper.OrderGoodsMapper;
import com.clx.performance.model.OrderGoods;
import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal;
/**
* @author kavin
......@@ -14,6 +17,8 @@ import com.clx.performance.model.OrderGoods;
* Time 16:45
*/
public interface OrderGoodsDao extends BaseDao<OrderGoodsMapper, OrderGoods, Integer> {
boolean updateWeight(@Param("orderId")Integer orderId, @Param("weight") BigDecimal weight);
Long getMaxOrderGoodsId(String type);
Optional<OrderGoods> getByOrderGoodsNo(String orderGoodsNo);
......
......@@ -6,7 +6,9 @@ import com.clx.performance.dao.OrderChildDao;
import com.clx.performance.enums.OrderChildEnum;
import com.clx.performance.mapper.OrderChildMapper;
import com.clx.performance.model.OrderChild;
import com.clx.performance.param.app.PageOrderChildOfDriverParam;
import com.clx.performance.param.pc.PagePoundAuditParam;
import com.clx.performance.vo.app.OrderChildVO;
import com.clx.performance.vo.pc.PageOrderChildPoundAuditVO;
import com.msl.common.base.Optional;
import com.msl.common.dao.impl.BaseDaoImpl;
......@@ -22,6 +24,15 @@ import java.time.LocalDateTime;
*/
@Repository
public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild, Integer> implements OrderChildDao {
@Override
public boolean updateStatus(OrderChild item) {
return update(lUdWrapper()
.eq(OrderChild::getChildNo, item.getChildNo())
.set(OrderChild::getStatus, item.getStatus())
);
}
@Override
public boolean updateCancel(OrderChild item) {
return update(lUdWrapper()
......@@ -54,6 +65,7 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
.set(OrderChild::getUnloadTime, item.getUnloadTime())
.set(OrderChild::getWeight, item.getWeight())
.set(OrderChild::getPoundStatus, item.getPoundStatus())
.set(OrderChild::getStatus, item.getStatus())
);
}
......@@ -76,21 +88,6 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
);
}
@Override
public boolean updateDriverConfirm(OrderChild item) {
return update(lUdWrapper()
.eq(OrderChild::getChildNo, item.getChildNo())
.set(OrderChild::getStatus, item.getStatus())
);
}
@Override
public boolean updateStatus(OrderChild item) {
return update(lUdWrapper()
.eq(OrderChild::getChildNo, item.getChildNo())
.set(OrderChild::getStatus, item.getStatus())
);
}
@Override
public Optional<OrderChild> getByChildNo(String childNo) {
......@@ -112,6 +109,12 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
);
}
@Override
public IPage<OrderChildVO> pageOrderChildOfDriver(PageOrderChildOfDriverParam param) {
Page<OrderChildVO> page = Page.of(param.getPage(), param.getPageSize());
return baseMapper.pageOrderChildOfDriver(page,param);
}
@Override
public IPage<PageOrderChildPoundAuditVO> pagePoundAuditList(PagePoundAuditParam param) {
Page<PageOrderChildPoundAuditVO> page = Page.of(param.getPage(), param.getPageSize());
......
......@@ -3,17 +3,17 @@ package com.clx.performance.dao.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.order.params.PageOrderGoodsListParam;
import com.clx.order.vo.feign.FeignPageOrderVO;
import com.clx.performance.dao.OrderGoodsDao;
import com.clx.performance.vo.pc.OrderGoodsVO;
import com.msl.common.dao.BaseDao;
import com.msl.common.dao.impl.BaseDaoImpl;
import com.clx.performance.mapper.OrderGoodsMapper;
import com.clx.performance.model.OrderGoods;
import com.clx.performance.vo.pc.OrderGoodsVO;
import com.msl.common.base.Optional;
import com.msl.common.dao.impl.BaseDaoImpl;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.math.BigDecimal;
/**
* @author kavin
* Date 2023-09-17
......@@ -22,6 +22,11 @@ import org.springframework.stereotype.Repository;
@Repository
public class OrderGoodsDaoImpl extends BaseDaoImpl<OrderGoodsMapper, OrderGoods, Integer> implements OrderGoodsDao {
@Override
public boolean updateWeight(@Param("orderId")Integer orderId, @Param("weight") BigDecimal weight) {
return baseMapper.updateWeight(orderId, weight)>0;
}
@Override
public Long getMaxOrderGoodsId(String type) {
return baseMapper.getMaxOrderGoodsId(type);
......@@ -31,7 +36,7 @@ public class OrderGoodsDaoImpl extends BaseDaoImpl<OrderGoodsMapper, OrderGoods,
public Optional<OrderGoods> getByOrderGoodsNo(String orderGoodsNo) {
return Optional.of(orderGoodsNo)
.map(item -> lQrWrapper()
.eq(OrderGoods::getUserNo, item)
.eq(OrderGoods::getOrderGoodsNo, item)
)
.map(super::getOne);
}
......
......@@ -4,8 +4,10 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.model.OrderChild;
import com.clx.performance.param.app.PageOrderChildOfDriverParam;
import com.clx.performance.param.pc.PagePoundAuditParam;
import com.clx.performance.sqlProvider.OrderChildSqlProvider;
import com.clx.performance.vo.app.OrderChildVO;
import com.clx.performance.vo.pc.PageOrderChildPoundAuditVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
......@@ -16,6 +18,14 @@ import org.apache.ibatis.annotations.SelectProvider;
@Mapper
public interface OrderChildMapper extends BaseMapper<OrderChild> {
/**
* 司机运单列表
* @see OrderChildSqlProvider#pageOrderChildOfDriver(Page, PageOrderChildOfDriverParam)
*/
@SelectProvider(type = OrderChildSqlProvider.class, method = "pageOrderChildOfDriver")
IPage<OrderChildVO> pageOrderChildOfDriver(@Param("page") Page<OrderChildVO> page, @Param("param") PageOrderChildOfDriverParam param);
@SelectProvider(type = OrderChildSqlProvider.class, method = "pagePoundAuditList")
IPage<PageOrderChildPoundAuditVO> pagePoundAuditList(@Param("page") Page<PageOrderChildPoundAuditVO> page, @Param("param") PagePoundAuditParam param);
......
......@@ -7,7 +7,11 @@ import com.clx.order.params.PageOrderGoodsListParam;
import com.clx.performance.model.OrderGoods;
import com.clx.performance.sqlProvider.OrderGoodsSqlProvider;
import com.clx.performance.vo.pc.OrderGoodsVO;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.SelectProvider;
import org.apache.ibatis.annotations.Update;
import java.math.BigDecimal;
/**
* @author kavin
......@@ -16,6 +20,11 @@ import org.apache.ibatis.annotations.SelectProvider;
*/
public interface OrderGoodsMapper extends BaseMapper<OrderGoods> {
@Update(" update order_goods set " +
" residue_transport_weight = residue_transport_weight-#{weight}, " +
" where id = #{orderId}")
int updateWeight(@Param("orderId")Integer orderId, @Param("weight")BigDecimal weight);
@SelectProvider(type = OrderGoodsSqlProvider.class, method = "getMaxOrderGoodsId")
Long getMaxOrderGoodsId(String type);
......
......@@ -29,6 +29,7 @@ public class OrderChild implements HasKey<Integer> {
private Integer id; //id
private Long userNo; //用户编号
private Long ownerUserNo; //货主用户编号
private String ownerName; //货主名称
private String childNo; //运单编号
private String orderGoodsNo; //货单编号
private String orderNo; //订单编号
......@@ -58,7 +59,8 @@ public class OrderChild implements HasKey<Integer> {
private BigDecimal unloadNet; //卸货净重(单位吨)
private BigDecimal weight; //拉运重量(单位吨)
private Integer poundStatus; //磅单审核状态
private String cancelRemark; //取消原因
private Integer poundStatus; //磅单审核状态 0 待审核 1 审核通过 2 审核驳回
private Integer status; //状态
private LocalDateTime payTime; //支付时间
......
......@@ -33,7 +33,7 @@ public interface OrderChildService {
OrderChildVO getOrderChildInfo(String childNo);
IPage<OrderChildVO> pageOrderChild(PageOrderChildParam param);
IPage<OrderChildVO> pageOrderChild(PageOrderChildOfDriverParam param);
IPage<PageOrderChildPoundAuditVO> pagePoundAuditList(PagePoundAuditParam param);
......
......@@ -5,10 +5,7 @@ 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.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.extranal.user.DriverService;
import com.clx.performance.model.OrderChild;
import com.clx.performance.model.OrderChildImage;
......@@ -32,11 +29,14 @@ import com.msl.user.data.UserSessionData;
import com.msl.user.utils.TokenUtil;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
......@@ -69,6 +69,9 @@ public class OrderChildServiceImpl implements OrderChildService {
private final OrderChildStruct orderChildStruct;
private final OrderChildPoundImageStruct orderChildPoundImageStruct;
@Autowired
private StringRedisTemplate stringRedisTemplate;
@Override
@Transactional(rollbackFor = Exception.class)
public SaveOrderChildVO saveOrderChild(OrderChildSaveParam param) {
......@@ -82,11 +85,11 @@ public class OrderChildServiceImpl implements OrderChildService {
BigDecimal truckLoad = driverTruckInfo.getLoad();
LocalDateTime now = LocalDateTime.now();
OrderGoods orderGoods = orderGoodsDao.getByOrderGoodsNo(param.getOrderGoodsNo()).orElseThrow(ResultCodeEnum.FAIL);
OrderGoods orderGoods = orderGoodsDao.getByOrderGoodsNo(param.getOrderGoodsNo()).orElseThrow(PerformanceResultEnum.ORDER_INVALID);
// 状态验证
if (!Objects.equals(orderGoods.getOrderGoodsStatus(), 1)
&& !Objects.equals(orderGoods.getOrderGoodsStatus(), 1)){
throw new ServiceSystemException(ResultCodeEnum.FAIL);
if (!Objects.equals(orderGoods.getOrderGoodsStatus(), OrderGoodsStatusEnum.Status.PAYING.getCode())
&& !Objects.equals(orderGoods.getOrderGoodsStatus(), OrderGoodsStatusEnum.Status.GO_TO_SEND.getCode())){
throw new ServiceSystemException(PerformanceResultEnum.ORDER_INVALID);
}
// 库存验证
......@@ -96,7 +99,12 @@ public class OrderChildServiceImpl implements OrderChildService {
OrderChild orderChild = new OrderChild();
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());
......@@ -182,16 +190,16 @@ public class OrderChildServiceImpl implements OrderChildService {
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.ARRIVE_RECEIVE.getCode())){return;}
if (Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.ARRIVE_SEND.getCode())){return;}
if (!Objects.equals(orderChild.getStatus(), OrderChildEnum.Status.GO_TO_SEND.getCode())){
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_STATUS_CHANGED);
}
// 装货超时
if (orderChild.getLoadTime().isBefore(LocalDateTime.now())){
if (orderChild.getLoadDeadline().isBefore(LocalDateTime.now())){
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_LOAD_TIMEOUT);
}
orderChild.setStatus(OrderChildEnum.Status.ARRIVE_RECEIVE.getCode());
orderChild.setStatus(OrderChildEnum.Status.ARRIVE_SEND.getCode());
orderChildDao.updateStatus(orderChild);
// 日志
......@@ -284,7 +292,7 @@ public class OrderChildServiceImpl implements OrderChildService {
String childNo = param.getChildNo();
// 装货超时
if (orderChild.getLoadTime().isBefore(LocalDateTime.now())){
if (orderChild.getLoadDeadline().isBefore(LocalDateTime.now())){
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_LOAD_TIMEOUT);
}
......@@ -294,6 +302,7 @@ public class OrderChildServiceImpl implements OrderChildService {
image.setChildNo(orderChild.getChildNo());
image.setType(OrderChildImage.Type.LOAD.getCode());
image.setImage(item);
imageList.add(image);
}
orderChild.setLoadRough(param.getLoadRough());
......@@ -316,6 +325,7 @@ public class OrderChildServiceImpl implements OrderChildService {
image.setChildNo(orderChild.getChildNo());
image.setType(OrderChildImage.Type.LOAD.getCode());
image.setImage(item);
imageList.add(image);
}
orderChild.setLoadRough(param.getLoadRough());
......@@ -373,6 +383,7 @@ public class OrderChildServiceImpl implements OrderChildService {
image.setChildNo(orderChild.getChildNo());
image.setType(OrderChildImage.Type.UNLOAD.getCode());
image.setImage(item);
imageList.add(image);
}
orderChild.setUnloadRough(param.getUnloadRough());
......@@ -400,18 +411,25 @@ public class OrderChildServiceImpl implements OrderChildService {
private void updateReUnload(OrderChildUnloadParam param, OrderChild orderChild) {
String childNo = param.getChildNo();
// 审核中
if (Objects.equals(orderChild.getPoundStatus(), OrderChildPoundAuditEnum.Status.AUDIT.getCode())){
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_POUND_AUDIT);
}
List<OrderChildImage> imageList = new ArrayList<>();
for (String item : param.getUnloadImageList()) {
OrderChildImage image = new OrderChildImage();
image.setChildNo(orderChild.getChildNo());
image.setType(OrderChildImage.Type.UNLOAD.getCode());
image.setImage(item);
imageList.add(image);
}
orderChild.setUnloadRough(param.getUnloadRough());
orderChild.setUnloadTare(param.getUnloadTare());
orderChild.setUnloadNet(param.getUnloadNet());
orderChild.setUnloadTime(LocalDateTime.now());
orderChild.setPoundStatus(OrderChildPoundAuditEnum.Status.AUDIT.getCode());
orderChild.setWeight(orderChildWeightCalc(orderChild));
OrderChildPoundAudit audit = new OrderChildPoundAudit();
......@@ -527,13 +545,16 @@ public class OrderChildServiceImpl implements OrderChildService {
throw new ServiceSystemException(PerformanceResultEnum.ORDER_CHILD_STATUS_CHANGED);
}
orderChild.setStatus(OrderChildEnum.Status.UNSETTLED.getCode());
orderChild.setStatus(OrderChildEnum.Status.UNSETTLE.getCode());
orderChildDao.updateStatus(orderChild);
// 释放司机、车辆
releaseDriver(orderChild.getDriverUserNo());
releaseTruck(orderChild.getTruckId());
// 日志
orderChildLogService.saveDriverOrderChildLog(childNo, OrderChildLogEnum.Type.DRIVER_CONFIRM.getCode(), OrderChildLogEnum.Type.DRIVER_CONFIRM.getMsg(),
loginUserInfo.getUserNo(), loginUserInfo.getUserName());
}
@Override
......@@ -565,12 +586,15 @@ public class OrderChildServiceImpl implements OrderChildService {
orderChild.setStatus(OrderChildEnum.Status.DRIVER_CANCEL.getCode());
// 取消
orderChildDao.updateCancel(orderChild);
// 返回吨数
cancelReturnWeight(orderChild, orderGoods);
// 释放司机、车辆
releaseDriver(orderChild.getDriverUserNo());
releaseTruck(orderChild.getTruckId());
// 日志
orderChildLogService.saveDriverOrderChildLog(childNo, OrderChildLogEnum.Type.DRIVER_CANCEL.getCode(), OrderChildLogEnum.Type.DRIVER_CANCEL.getMsg(),
loginUserInfo.getUserNo(), loginUserInfo.getUserName());
......@@ -578,10 +602,7 @@ public class OrderChildServiceImpl implements OrderChildService {
@Override
public OrderChildVO getOrderChildInfo(String childNo) {
// UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
UserSessionData loginUserInfo = new UserSessionData();
loginUserInfo.setUserNo(1000L);
loginUserInfo.setUserName("zs");
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
Long userNo = loginUserInfo.getUserNo();
OrderChild orderChild = orderChildDao.getByChildNo(childNo).orElseThrow(PerformanceResultEnum.ORDER_CHILD_NO_FOUND);
......@@ -599,8 +620,13 @@ public class OrderChildServiceImpl implements OrderChildService {
}
@Override
public IPage<OrderChildVO> pageOrderChild(PageOrderChildParam param) {
return null;
public IPage<OrderChildVO> pageOrderChild(PageOrderChildOfDriverParam param) {
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
Long userNo = loginUserInfo.getUserNo();
param.setUserNo(userNo);
return orderChildDao.pageOrderChildOfDriver(param);
}
......@@ -609,7 +635,8 @@ public class OrderChildServiceImpl implements OrderChildService {
*/
private void updateOrderGoodsAmount(OrderGoods orderGoods, BigDecimal weight){
if (orderGoods.getResidueTransportWeight().compareTo(weight) <= 0) {orderGoods.setOrderGoodsStatus(0);}
// orderGoodsDao.updateEntityByKey(orderGoods, weight);
orderGoodsDao.updateWeight(orderGoods.getId(), weight);
}
/**
......@@ -669,13 +696,18 @@ public class OrderChildServiceImpl implements OrderChildService {
}
/**
* 创建运单号
*/
private String childNoGenerate(){
return "1";
return DateTimeFormatter.ofPattern("yyyyMMddHHmmss").format(LocalDateTime.now());
}
@Override
public IPage<PageOrderChildPoundAuditVO> pagePoundAuditList(PagePoundAuditParam param) {
return orderChildDao.pagePoundAuditList(param);
}
}
......@@ -2,7 +2,9 @@ package com.clx.performance.sqlProvider;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.param.app.PageOrderChildOfDriverParam;
import com.clx.performance.param.pc.PagePoundAuditParam;
import com.clx.performance.vo.app.OrderChildVO;
import com.clx.performance.vo.pc.PageOrderChildPoundAuditVO;
import org.apache.commons.lang3.StringUtils;
import org.apache.ibatis.annotations.Param;
......@@ -12,6 +14,33 @@ import java.util.Objects;
public class OrderChildSqlProvider {
public String pageOrderChildOfDriver(@Param("page") Page<OrderChildVO> page, @Param("param") PageOrderChildOfDriverParam param) {
return new SQL(){{
SELECT("child_no,goods_name,freight_price," +
"send_address,receive_address," +
"driver_name,driver_mobile," +
"weight," +
"cancel_remark," +
"pound_status,status," +
"date_format(load_deadline, '%Y-%m-%d %H:%i:%s') as loadDeadline," +
"date_format(unload_time, '%Y-%m-%d %H:%i:%s') as unloadTime "
);
FROM("order_child ");
WHERE("(user_no = #{param.userNo} or driver_user_no = #{param.userNo}) ");
if (StringUtils.isNotBlank(param.getContent())) {WHERE("(" +
" owner_name like CONCAT(#{param.content},'%') " +
" or truck_no like CONCAT(#{param.content},'%') " +
" or driver_name like CONCAT(#{param.content},'%') " +
" or send_address like CONCAT(#{param.content},'%') " +
" or receive_address like CONCAT(#{param.content},'%') " +
")");}
if (Objects.nonNull(param.getStatus())) {WHERE("status = #{param.status}");}
ORDER_BY("create_time desc");
}}.toString();
}
public String pagePoundAuditList(@Param("page") Page<PageOrderChildPoundAuditVO> page, @Param("param") PagePoundAuditParam param) {
return new SQL(){{
SELECT("child_no,status,goods_name,send_address,receive_address,driver_name,driver_mobile,load_net,unload_net," +
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论