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

运单流程

上级 e541170a
......@@ -33,6 +33,18 @@ public enum PerformanceResultEnum implements ResultEnum {
DATA_REPEAT(1106, "数据重复"),
ORDER_NO_FOUND(1200, "货单不存在"),
ORDER_WEIGHT_LACK(1200, "剩余数量不足"),
ORDER_CHILD_NO_FOUND(1301, "运单不存在"),
ORDER_CHILD_STATUS_CHANGED(1302, "运单状态已变更,请重新刷新页面"),
ORDER_CHILD_CANCELED(1303, "运单状态已取消"),
ORDER_CHILD_COMPLETE(1304, "运单状态已完成"),
ORDER_CHILD_LOAD_TIMEOUT(1305, "超过装货截止时间"),
ORDER_CHILD_CANCEL_FORBID(1306, "运单无法取消"),
ORDER_CHILD_CANCEL_FORBID_COUNT(1307, "超出最大取消数量"),
;
......
......@@ -37,6 +37,7 @@ public class OrderChildVO {
private String orderGoodsNo;
@ApiModelProperty(value = "订单编号", example = "")
private String orderNo;
@ApiModelProperty(value = "货物id", example = "")
private Integer goodsId;
@ApiModelProperty(value = "货物名称", example = "")
......@@ -51,6 +52,9 @@ public class OrderChildVO {
private Integer receiveAddressId;
@ApiModelProperty(value = "收货地址", example = "")
private String receiveAddress;
@ApiModelProperty(value = "最晚装货时间", example = "")
private String loadDeadline;
@ApiModelProperty(value = "车辆ID", example = "")
private Integer truckId;
@ApiModelProperty(value = "车牌号", example = "")
......@@ -63,6 +67,7 @@ public class OrderChildVO {
private String driverName;
@ApiModelProperty(value = "司机手机号", example = "")
private String driverMobile;
@ApiModelProperty(value = "装货毛重(单位吨)", example = "")
private BigDecimal loadRough;
@ApiModelProperty(value = "装货皮重(单位吨)", example = "")
......@@ -77,6 +82,7 @@ public class OrderChildVO {
private BigDecimal unloadNet;
@ApiModelProperty(value = "拉运重量(单位吨)", example = "")
private BigDecimal weight;
@ApiModelProperty(value = "磅单审核状态", example = "")
private Integer poundStatus;
@ApiModelProperty(value = "状态", example = "")
......
......@@ -65,7 +65,7 @@ public class AppGoodsOrderController {
@GetMapping("/getOrderGoodsInfo")
@UnitCovert(param = false)
public Result<OrderGoodsVO> getOrderGoodsInfo(@RequestParam String orderGoodsNo) {
return Result.ok(orderGoodsService.getOrderGoodsInfoByOrderGoodsNoForAPP(orderGoodsNo));
return Result.ok(orderGoodsService.getOrderGoodsInfoByOrderGoodsNo(orderGoodsNo));
}
}
......@@ -2,6 +2,7 @@ package com.clx.performance.controller.app;
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.msl.common.result.Result;
import io.swagger.annotations.Api;
......@@ -71,7 +72,7 @@ public class DriverOrderChildController {
return Result.ok();
}
@ApiOperation(value = "装车(首次、再次)", notes = "<br>By:艾庆国")
@ApiOperation(value = "装车(首次、重复)", notes = "<br>By:艾庆国")
@PostMapping("/updateLoad")
public Result<Void> updateLoad(@RequestBody @Validated OrderChildLoadParam param) {
orderChildService.updateLoad(param);
......@@ -79,7 +80,7 @@ public class DriverOrderChildController {
return Result.ok();
}
@ApiOperation(value = "卸车(首次、再次)", notes = "<br>By:艾庆国")
@ApiOperation(value = "卸车(首次、重复)", notes = "<br>By:艾庆国")
@PostMapping("/updateUnload")
public Result<Void> updateUnload(@RequestBody @Validated OrderChildUnloadParam param) {
orderChildService.updateUnload(param);
......@@ -95,19 +96,19 @@ public class DriverOrderChildController {
return Result.ok();
}
@ApiOperation(value = "确认交货", notes = "<br>By:艾庆国")
@PostMapping("/updateConfirm")
public Result<Void> updateConfirm(@RequestBody @Validated OrderChildConfirmParam param) {
orderChildService.updateConfirm(param);
@ApiOperation(value = "取消运单", notes = "<br>By:艾庆国")
@PostMapping("/updateCancel")
public Result<Void> updateDriverCancel(@RequestBody @Validated OrderChildCancelParam param) {
orderChildService.updateDriverCancel(param);
return Result.ok();
}
@ApiOperation(value = "取消运单", notes = "<br>By:艾庆国")
@PostMapping("/updateCancel")
public Result<Void> updateCancel(@RequestBody @Validated OrderChildCancelParam param) {
orderChildService.updateCancel(param);
@ApiOperation(value = "查询运单详情", notes = "<br>By:艾庆国")
@PostMapping("/getOrderChildInfo")
public Result<OrderChildVO> getOrderChildInfo(String childNo) {
return Result.ok();
return Result.ok(orderChildService.getOrderChildInfo(childNo));
}
}
......@@ -253,16 +253,15 @@ public class GoodsOrderController {
@GetMapping("/getOrderGoodsInfo")
@UnitCovert(param = false)
public Result<OrderGoodsVO> getOrderGoodsInfo(@RequestParam String orderGoodsNo) {
return Result.ok(orderGoodsService.getOrderGoodsInfoByOrderGoodsNoForPC(orderGoodsNo));
return Result.ok(orderGoodsService.getOrderGoodsInfoByOrderGoodsNo(orderGoodsNo));
}
@ApiOperation(value = "查看货单列表", notes = "<br>By:胡宇帆")
@PostMapping("/pageOrderGoodsList")
@UnitCovert(param = false)
public Result<PageData<OrderGoodsVO>> pageOrderGoodsList(@RequestBody PageOrderGoodsListParam param) {
public Result<PageData<OrderGoodsVO>> pageOrderGoodsList(@RequestBody @Validated PageOrderGoodsListParam param) {
if (StringUtils.isNotBlank(param.getOrderGoodsNo())) {
param.setOrderGoodsType(param.getOrderGoodsNo().substring(0, 2));
param.setOrderNo(param.getOrderGoodsNo().substring(2));
}
IPage<OrderGoodsVO> page = orderGoodsService.pageOrderGoodsList(param);
return Result.page(page.getRecords(), page.getTotal(), page.getPages());
......
......@@ -20,10 +20,11 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int
boolean updateCancel(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);
......
......@@ -21,4 +21,6 @@ public interface OrderChildImageDao extends BaseDao<OrderChildImageMapper, Order
Optional<List<OrderChildImage>> getImages(String childNo, Integer type);
Optional<List<OrderChildImage>> listLoadAndUnload(String childNo);
}
......@@ -18,10 +18,7 @@ public interface OrderGoodsDao extends BaseDao<OrderGoodsMapper, OrderGoods, Int
Optional<OrderGoods> getByOrderGoodsNo(String orderGoodsNo);
Optional<OrderGoods> getOrderGoodsInfoByOrderGoodsNoForPC(String orderGoodsNo);
Optional<OrderGoods> getOrderGoodsInfoByOrderGoodsNoForAPP(String orderGoodsNo);
Optional<OrderGoods> getOrderGoodsInfoByOrderGoodsNo(String orderGoodsNo);
IPage<OrderGoodsVO> pageOrderGoodsList(PageOrderGoodsListParam param);
}
......@@ -32,17 +32,48 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
@Override
public boolean updateLoad(OrderChild item) {
return false;
return update(lUdWrapper()
.eq(OrderChild::getChildNo, item.getChildNo())
.set(OrderChild::getLoadRough, item.getLoadRough())
.set(OrderChild::getLoadTare, item.getLoadTare())
.set(OrderChild::getLoadNet, item.getLoadNet())
.set(OrderChild::getLoadTime, item.getLoadTime())
.set(OrderChild::getWeight, item.getWeight())
.set(OrderChild::getStatus, item.getStatus())
);
}
@Override
public boolean updateUnload(OrderChild item) {
return false;
return update(lUdWrapper()
.eq(OrderChild::getChildNo, item.getChildNo())
.set(OrderChild::getUnloadRough, item.getUnloadRough())
.set(OrderChild::getUnloadTare, item.getUnloadTare())
.set(OrderChild::getUnloadNet, item.getUnloadNet())
.set(OrderChild::getUnloadTime, item.getUnloadTime())
.set(OrderChild::getWeight, item.getWeight())
.set(OrderChild::getStatus, item.getStatus())
);
}
@Override
public boolean updateLoadAndUnload(OrderChild item) {
return false;
return update(lUdWrapper()
.eq(OrderChild::getChildNo, item.getChildNo())
.set(OrderChild::getLoadRough, item.getLoadRough())
.set(OrderChild::getLoadTare, item.getLoadTare())
.set(OrderChild::getLoadNet, item.getLoadNet())
.set(OrderChild::getUnloadRough, item.getUnloadRough())
.set(OrderChild::getUnloadTare, item.getUnloadTare())
.set(OrderChild::getUnloadNet, item.getUnloadNet())
.set(OrderChild::getWeight, item.getWeight())
.set(OrderChild::getPoundStatus, item.getPoundStatus())
);
}
@Override
......@@ -50,6 +81,14 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
return false;
}
@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) {
return Optional.of(childNo)
......
......@@ -44,6 +44,15 @@ public class OrderChildImageImpl extends BaseDaoImpl<OrderChildImageMapper, Orde
}
@Override
public Optional<List<OrderChildImage>> listLoadAndUnload(String childNo) {
return Optional.of(childNo)
.map(item -> lQrWrapper()
.eq(OrderChildImage::getChildNo, childNo)
)
.map(super::list);
}
@Override
public Optional<List<OrderChildImage>> getImages(String childNo, Integer type) {
return Optional.ofEmpty(list(lQrWrapper()
......
......@@ -37,21 +37,10 @@ public class OrderGoodsDaoImpl extends BaseDaoImpl<OrderGoodsMapper, OrderGoods,
}
@Override
public Optional<OrderGoods> getOrderGoodsInfoByOrderGoodsNoForPC(String orderGoodsNo) {
public Optional<OrderGoods> getOrderGoodsInfoByOrderGoodsNo(String orderGoodsNo) {
return Optional.of(orderGoodsNo)
.map(item -> lQrWrapper()
.eq(OrderGoods::getOrderGoodsType, item.substring(0,2))
.eq(OrderGoods::getOrderGoodsNo, item.substring(2))
)
.map(super::getOne);
}
@Override
public Optional<OrderGoods> getOrderGoodsInfoByOrderGoodsNoForAPP(String orderGoodsNo) {
return Optional.of(orderGoodsNo)
.map(item -> lQrWrapper()
.eq(OrderGoods::getOrderGoodsType, item.substring(0,2))
.eq(OrderGoods::getOrderGoodsNo, item.substring(2))
.eq(OrderGoods::getOrderGoodsNo, item)
)
.map(super::getOne);
}
......
package com.clx.performance.extranal.user;
import com.clx.user.vo.feign.DriverTruckInfoFeignVo;
import com.msl.common.base.Optional;
public interface DriverService {
Optional<DriverTruckInfoFeignVo> getUserDetailInfo(Long driverUserNo, Integer truckId);
}
package com.clx.performance.extranal.user.impl;
import com.clx.performance.extranal.user.DriverService;
import com.clx.user.feign.DriverFeign;
import com.clx.user.vo.feign.DriverTruckInfoFeignVo;
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;
@Slf4j
@Service
@AllArgsConstructor
public class DriverServiceImpl implements DriverService {
private final DriverFeign driverFeign;
@Override
public Optional<DriverTruckInfoFeignVo> getUserDetailInfo(Long driverUserNo, Integer truckId) {
Optional<DriverTruckInfoFeignVo> map = Optional.ofNullable(driverFeign.getDriverTruckInfo(driverUserNo, truckId))
.filter(Result::succeed)
.map(Result::getData);
return map;
}
}
......@@ -41,6 +41,8 @@ public class OrderChild implements HasKey<Integer> {
private String sendAddress; //发货地址
private Integer receiveAddressId; //收货地址id
private String receiveAddress; //收货地址
private LocalDateTime loadDeadline; //最晚装货时间
private Integer truckId; //车辆ID
private String truckNo; //车牌号
private BigDecimal truckLoad; //载重(单位吨)
......
......@@ -4,4 +4,5 @@ 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);
}
......@@ -13,4 +13,7 @@ import java.util.List;
public interface OrderChildPoundLogService {
List<OrderChildPoundLogVO> getPoundLogList(String childNo);
void saveDriverOrderChildLog(String childNo, Integer status, String remark, Long createBy, String createName);
}
......@@ -3,6 +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.pc.PageOrderChildPoundAuditVO;
......@@ -27,9 +28,9 @@ public interface OrderChildService {
void updateUnload(OrderChildUnloadParam param);
void updateLoadAndUnloadAgain(OrderChildLoadAndUnloadAgainParam param);
void updateConfirm(OrderChildConfirmParam param);
void updateDriverCancel(OrderChildCancelParam param);
void updateCancel(OrderChildCancelParam param);
OrderChildVO getOrderChildInfo(String childNo);
IPage<PageOrderChildPoundAuditVO> pagePoundAuditList(PagePoundAuditParam param);
......
......@@ -13,9 +13,7 @@ import com.msl.common.result.Result;
* Time 16:45
*/
public interface OrderGoodsService {
OrderGoodsVO getOrderGoodsInfoByOrderGoodsNoForPC(String orderGoodsNo);
OrderGoodsVO getOrderGoodsInfoByOrderGoodsNoForAPP(String orderGoodsNo);
OrderGoodsVO getOrderGoodsInfoByOrderGoodsNo(String orderGoodsNo);
IPage<OrderGoodsVO> pageOrderGoodsList(PageOrderGoodsListParam param);
}
package com.clx.performance.service.impl;
import com.clx.performance.dao.OrderChildLogDao;
import com.clx.performance.enums.OrderChildLogEnum;
import com.clx.performance.model.OrderChildLog;
import com.clx.performance.service.OrderChildLogService;
import lombok.extern.slf4j.Slf4j;
......@@ -28,4 +29,9 @@ public class OrderChildLogServiceImpl implements OrderChildLogService {
orderChildLogDao.saveEntity(orderChildLog);
}
@Override
public void saveDriverOrderChildLog(String childNo, Integer type, String remark, Long createBy, String createName) {
saveOrderChildLog(childNo, type, remark, OrderChildLogEnum.CreateType.DRIVER.getCode(), createBy, createName);
}
}
......@@ -31,4 +31,17 @@ public class OrderChildPoundLogServiceImpl implements OrderChildPoundLogService
List<OrderChildPoundLog> poundLogList = orderChildPoundLogDao.getPoundLogList(childNo);
return orderChildPoundLogStruct.convert(poundLogList);
}
@Override
public void saveDriverOrderChildLog(String childNo, Integer status, String remark, Long createBy, String createName) {
OrderChildPoundLog poundLog = new OrderChildPoundLog();
poundLog.setChildNo(childNo);
poundLog.setStatus(status);
poundLog.setRemark(remark);
poundLog.setCreateBy(createBy);
poundLog.setCreateName(createName);
orderChildPoundLogDao.saveEntity(poundLog);
}
}
......@@ -26,13 +26,8 @@ public class OrderGoodsServiceImpl implements OrderGoodsService {
private OrderGoodsStruct orderGoodsStruct;
@Override
public OrderGoodsVO getOrderGoodsInfoByOrderGoodsNoForPC(String orderGoodsNo) {
return orderGoodsDao.getOrderGoodsInfoByOrderGoodsNoForPC(orderGoodsNo).map(orderGoodsStruct::convert).get();
}
@Override
public OrderGoodsVO getOrderGoodsInfoByOrderGoodsNoForAPP(String orderGoodsNo) {
return orderGoodsDao.getOrderGoodsInfoByOrderGoodsNoForAPP(orderGoodsNo).map(orderGoodsStruct::convert).get();
public OrderGoodsVO getOrderGoodsInfoByOrderGoodsNo(String orderGoodsNo) {
return orderGoodsDao.getOrderGoodsInfoByOrderGoodsNo(orderGoodsNo).map(orderGoodsStruct::convert).get();
}
@Override
......
......@@ -19,8 +19,8 @@ public class OrderGoodsSqlProvider {
public String pageOrderGoodsList(@Param("page") Page<FeignPageOrderVO> page, @Param("param") PageOrderGoodsListParam param) {
String sql = new SQL() {{
SELECT("a.id, a.order_no, a.order_goods_type," +
" concat(a.order_goods_type,a.order_goods_no) as order_goods_no, a.order_goods_status, a.extract_weight, " +
SELECT("a.id, a.order_no, a.order_goods_type " +
" a.order_goods_no, a.order_goods_status, a.extract_weight, " +
" a.residue_transport_weight, a.send_address_id, a.send_address_shorter,a.send_longitude," +
" a.send_latitude,a.receive_address_id, a.receive_address_shorter,a.receive_longitude,a.receive_latitude," +
"a.goods_id, a.goods_name, a.pending_order_way," +
......@@ -30,8 +30,9 @@ public class OrderGoodsSqlProvider {
" date_format(a.create_time, '%Y-%m-%d %H:%i:%s') as create_time," +
" date_format(a.modified_time, '%Y-%m-%d %H:%i:%s') as modified_time," +
"a.extract_way,a.need_truck_num,a.senior_logistics_manager_id,a.senior_logistics_manager_name,a.pending_order_freight," +
"a.user_no,a.user_name");
FROM("order_goods a");
"a.user_no,a.user_name," +
"a.valid_freight_price ");
FROM("order_info a");
if (StringUtils.isNotBlank(param.getBeginTime()) && StringUtils.isNotBlank(param.getEndTime())) {
WHERE("a.create_time >= #{param.beginTime}");
......@@ -66,7 +67,6 @@ public class OrderGoodsSqlProvider {
}
if (StringUtils.isNotBlank(param.getOrderGoodsNo())) {
WHERE("a.order_goods_no = #{param.orderGoodsNo}");
WHERE("a.order_goods_no = #{param.orderGoodsType}");
}
ORDER_BY("a.create_time desc");
}}.toString();
......
package com.clx.performance.struct;
import com.clx.performance.model.OrderChild;
import com.clx.performance.vo.app.OrderChildVO;
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 OrderChildPoundImageStruct {
OrderChildVO convert(OrderChild item);
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论