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

运单流程

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