提交 c13310c0 authored 作者: huyufan's avatar huyufan

开发:货单详情相关运单等功能,绑定车辆

上级 a938a193
package com.clx.performance.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.Arrays;
import java.util.Optional;
public enum OrderGoodsTypeEnum {
;
@Getter
@AllArgsConstructor
public enum Status {
PLATFORM("PT", "平台"),
;
private final String code;
private final String name;
public static Optional<Status> getByCode(String code) {
return Arrays.stream(values()).filter(e -> e.code .equals(code)).findFirst();
}
}
}
package com.clx.performance.vo.pc;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
@Getter
@Setter
@NoArgsConstructor
public class OrderChildPCVO {
@ApiModelProperty("订单编号")
private String orderNo;
@ApiModelProperty("货单编号")
private String orderGoodsNo;
@ApiModelProperty("运单编号")
private String childNo;
@ApiModelProperty("运单状态:10:已接单 20:支付 30:前往货源地 40:到达货源地 50:装货成功 60:前往目的地 70:到达目的地 80:收货待确认 90:待结算 100:完成 110:司机取消 111:平台取消")
private Integer status;
}
\ No newline at end of file
package com.clx.performance.vo.pc;
import com.msl.common.convertor.aspect.UnitCovert;
import com.msl.common.convertor.field.Convert;
import com.msl.common.convertor.field.Converted;
import com.msl.common.convertor.type.MoneyOutConvert;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
......@@ -11,12 +8,6 @@ import lombok.Setter;
import java.math.BigDecimal;
/**
* @Author: aiqinguo
* @Description: 运单表
* @Date: 2023/09/18 11:34:50
* @Version: 1.0
*/
@Getter
@Setter
......
package com.clx.performance.controller.feign;
import com.clx.performance.service.OrderGoodsDriverTruckService;
import com.clx.performance.service.OrderGoodsTruckBindService;
import com.msl.common.result.Result;
import io.swagger.annotations.Api;
import lombok.AllArgsConstructor;
......@@ -20,11 +20,11 @@ import java.util.List;
@AllArgsConstructor
public class TruckFeignController {
private final OrderGoodsDriverTruckService truckService;
private final OrderGoodsTruckBindService orderGoodsTruckService;
@GetMapping({"/getTrucksByOrderGoodsNo"})
Result<List<Integer>> getTrucksByOrderGoodsNo(@RequestParam("orderGoodsNo") @NotNull(message = "货单编号不可为空") String orderGoodsNo){
return Result.ok(truckService.getTrucksByOrderGoodsNo(orderGoodsNo));
return Result.ok(orderGoodsTruckService.getTrucksByOrderGoodsNo(orderGoodsNo));
}
}
package com.clx.performance.controller.pc;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.order.feign.OrderFeign;
......@@ -12,10 +13,14 @@ import com.clx.order.vo.feign.FeignPageOrderVO;
import com.clx.performance.component.OrderGoodsIdGenerate;
import com.clx.performance.constant.RabbitKeyConstants;
import com.clx.performance.constant.RedisConstants;
import com.clx.performance.dao.OrderGoodsTruckBindDao;
import com.clx.performance.enums.OrderGoodsStatusEnum;
import com.clx.performance.enums.OrderGoodsTypeEnum;
import com.clx.performance.mapper.OrderGoodsMapper;
import com.clx.performance.model.OrderGoods;
import com.clx.performance.service.OrderChildService;
import com.clx.performance.service.OrderGoodsService;
import com.clx.performance.vo.pc.OrderChildPCVO;
import com.clx.performance.vo.pc.OrderGoodsVO;
import com.msl.common.base.PageData;
import com.msl.common.convertor.aspect.UnitCovert;
......@@ -71,6 +76,12 @@ public class GoodsOrderController {
@Autowired
private OrderGoodsIdGenerate orderGoodsIdGenerate;
@Autowired
private OrderGoodsTruckBindDao orderGoodsTruckBindDao;
@Autowired
private OrderChildService orderChildService;
@ApiOperation(value = "提交货单", notes = "<br>By:胡宇帆")
@PostMapping("/saveGoodsOrder")
public Result<Object> saveGoodName(@RequestBody @Validated OrderGoodsParams orderGoodsParams) {
......@@ -96,7 +107,7 @@ public class GoodsOrderController {
if (orderInfo.getResidueWeight().compareTo(childSum) < 0) {
throw new RuntimeException("当前货单总吨数已超订单总吨数");
}
long beginOrderGoodsId = orderGoodsIdGenerate.getOrderGoodsId("pt", childParamsList.size());
long beginOrderGoodsId = orderGoodsIdGenerate.getOrderGoodsId(OrderGoodsTypeEnum.Status.PLATFORM.getCode(), childParamsList.size());
for (OrderGoodsChildParams child : childParamsList) {
if (child.getPendingOrderWay().equals(2) && child.getNeedTruckNum() == null) {
throw new RuntimeException("定向派单必须选择车辆");
......@@ -131,7 +142,7 @@ public class GoodsOrderController {
// orderGoods.setSeniorLogisticsManagerName(child.getSeniorLogisticsManagerName());
orderGoods.setOrderNo(orderNo);
orderGoods.setOrderGoodsNo(String.valueOf(beginOrderGoodsId));
orderGoods.setOrderGoodsNo(OrderGoodsTypeEnum.Status.PLATFORM.getCode() + beginOrderGoodsId);
orderGoods.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.CREATED.getCode());
orderGoods.setSendAddressId(orderInfo.getSendAddressId());
orderGoods.setSendAddressShorter(orderInfo.getSendAddressShorter());
......@@ -146,6 +157,9 @@ public class GoodsOrderController {
orderGoods.setModifiedTime(now);
orderGoods.setUserName("loginUserInfo.getUserName()");
orderGoods.setUserNo(123L);
if (CollectionUtil.isNotEmpty(child.getTrackList())) {
orderGoodsTruckBindDao.saveBatchEntity(orderNo, OrderGoodsTypeEnum.Status.PLATFORM.getCode() + beginOrderGoodsId, child.getTrackList(), now);
}
beginOrderGoodsId = beginOrderGoodsId + 1;
orderGoodsMapper.insert(orderGoods);
}
......@@ -159,7 +173,7 @@ public class GoodsOrderController {
if (childParamsList.size() > 1) {
throw new RuntimeException("全部自有车辆只能全部提取");
}
long beginOrderGoodsId = orderGoodsIdGenerate.getOrderGoodsId("pt", childParamsList.size());
long beginOrderGoodsId = orderGoodsIdGenerate.getOrderGoodsId(OrderGoodsTypeEnum.Status.PLATFORM.getCode(), childParamsList.size());
for (OrderGoodsChildParams child : childParamsList) {
OrderGoods orderGoods = new OrderGoods();
......@@ -194,7 +208,7 @@ public class GoodsOrderController {
// orderGoods.setSeniorLogisticsManagerName(child.getSeniorLogisticsManagerName());
orderGoods.setOrderNo(orderNo);
orderGoods.setOrderGoodsNo(String.valueOf(beginOrderGoodsId));
orderGoods.setOrderGoodsNo(OrderGoodsTypeEnum.Status.PLATFORM.getCode() + beginOrderGoodsId);
orderGoods.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.CREATED.getCode());
orderGoods.setSendAddressId(orderInfo.getSendAddressId());
orderGoods.setSendAddressShorter(orderInfo.getSendAddressShorter());
......@@ -209,7 +223,11 @@ public class GoodsOrderController {
orderGoods.setModifiedTime(now);
orderGoods.setUserName("loginUserInfo.getUserName()");
orderGoods.setUserNo(123L);
if (CollectionUtil.isNotEmpty(child.getTrackList())) {
orderGoodsTruckBindDao.saveBatchEntity(orderNo, OrderGoodsTypeEnum.Status.PLATFORM.getCode() + beginOrderGoodsId, child.getTrackList(), now);
}
beginOrderGoodsId = beginOrderGoodsId + 1;
orderGoodsMapper.insert(orderGoods);
}
}
......@@ -252,6 +270,13 @@ public class GoodsOrderController {
return Result.ok(orderGoodsService.getOrderGoodsInfoByOrderGoodsNoForPC(orderGoodsNo));
}
@ApiOperation(value = "查看货单详情-相关运单", notes = "<br>By:胡宇帆")
@GetMapping("/getOrderChildInfoByOrderGoodsNo")
@UnitCovert(param = false)
public Result<List<OrderChildPCVO>> getOrderChildInfoByOrderGoodsNo(@RequestParam String orderGoodsNo) {
return Result.ok(orderChildService.getOrderChildInfoByOrderGoodsNo(orderGoodsNo));
}
@ApiOperation(value = "查看货单列表", notes = "<br>By:胡宇帆")
@PostMapping("/pageOrderGoodsList")
@UnitCovert(param = false)
......
......@@ -12,6 +12,7 @@ import com.msl.common.base.Optional;
import com.msl.common.dao.BaseDao;
import java.time.LocalDateTime;
import java.util.List;
/**
* @Author: aiqinguo
......@@ -40,5 +41,5 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int
boolean updatePoundAuditStatus(OrderChild item);
Optional<List<OrderChild>> getOrderChildInfoByOrderGoodsNo(String childNo);
}
......@@ -12,7 +12,6 @@ import java.util.List;
* Time 16:45
*/
public interface OrderGoodsDriverTruckDao extends BaseDao<OrderGoodsDriverTruckMapper, OrderGoodsDriverTruck, Integer> {
List<Integer> getTrucksByOrderGoodsNo(String orderGoodsNo);
void deleteByTruckNoAndDriverUserNo(String truckNo, String driverUserNo);
}
......@@ -4,6 +4,9 @@ import com.clx.performance.mapper.OrderGoodsTruckBindMapper;
import com.clx.performance.model.OrderGoodsTruckBind;
import com.msl.common.dao.BaseDao;
import java.time.LocalDateTime;
import java.util.List;
/**
* @Author: huyufan
* @Description: 货单定向绑定车辆表
......@@ -12,4 +15,7 @@ import com.msl.common.dao.BaseDao;
*/
public interface OrderGoodsTruckBindDao extends BaseDao<OrderGoodsTruckBindMapper, OrderGoodsTruckBind, Integer> {
void saveBatchEntity(String orderNo, String orderGoodsNo, List<String> trackList, LocalDateTime now);
List<Integer> getTrucksByOrderGoodsNo(String orderGoodsNo);
}
......@@ -16,6 +16,7 @@ import com.msl.common.dao.impl.BaseDaoImpl;
import org.springframework.stereotype.Repository;
import java.time.LocalDateTime;
import java.util.List;
/**
* @Author: aiqinguo
......@@ -137,4 +138,9 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
.set(OrderChild::getUnloadNet, item.getUnloadNet())
);
}
@Override
public Optional<List<OrderChild>> getOrderChildInfoByOrderGoodsNo(String orderGoodsNo) {
return Optional.of(list(lQrWrapper().eq(OrderChild::getOrderGoodsNo, orderGoodsNo)));
}
}
......@@ -18,10 +18,6 @@ import java.util.List;
*/
@Repository
public class OrderGoodsDriverTruckDaoImpl extends BaseDaoImpl<OrderGoodsDriverTruckMapper, OrderGoodsDriverTruck, Integer> implements OrderGoodsDriverTruckDao {
@Override
public List<Integer> getTrucksByOrderGoodsNo(String orderGoodsNo) {
return baseMapper.getTrucksByOrderGoodsNo(orderGoodsNo);
}
@Override
public void deleteByTruckNoAndDriverUserNo(String truckNo, String driverUserNo) {
......
package com.clx.performance.dao.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.clx.performance.dao.OrderGoodsTruckBindDao;
import com.clx.performance.mapper.OrderGoodsTruckBindMapper;
import com.clx.performance.model.OrderGoodsTruckBind;
import com.msl.common.dao.impl.BaseDaoImpl;
import org.springframework.stereotype.Repository;
import java.time.LocalDateTime;
import java.util.List;
/**
* @Author: huyufan
* @Description: 货单定向绑定车辆表
......@@ -15,4 +19,14 @@ import org.springframework.stereotype.Repository;
@Repository
public class OrderGoodsTruckBindDaoImpl extends BaseDaoImpl<OrderGoodsTruckBindMapper, OrderGoodsTruckBind, Integer> implements OrderGoodsTruckBindDao {
@Override
public void saveBatchEntity(String orderNo, String orderGoodsNo, List<String> trackList, LocalDateTime now) {
baseMapper.saveBatchEntity(orderNo, orderGoodsNo, trackList, now);
}
@Override
public List<Integer> getTrucksByOrderGoodsNo(String orderGoodsNo) {
return baseMapper.getTrucksByOrderGoodsNo(orderGoodsNo);
}
}
......@@ -14,6 +14,5 @@ import java.util.List;
*/
public interface OrderGoodsDriverTruckMapper extends BaseMapper<OrderGoodsDriverTruck> {
@Select("select truck_id from order_goods_driver_truck where order_goods_no=#{orderGoodsNo}")
List<Integer> getTrucksByOrderGoodsNo(@Param("orderGoodsNo") String orderGoodsNo);
}
......@@ -2,7 +2,15 @@ package com.clx.performance.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.clx.performance.model.OrderGoodsTruckBind;
import com.clx.performance.sqlProvider.OrderGoodsSqlProvider;
import com.clx.performance.sqlProvider.OrderGoodsTruckBindSqlProvider;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.SelectProvider;
import java.time.LocalDateTime;
import java.util.List;
/**
* @Author: huyufan
......@@ -14,4 +22,9 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface OrderGoodsTruckBindMapper extends BaseMapper<OrderGoodsTruckBind> {
@SelectProvider(type = OrderGoodsTruckBindSqlProvider.class, method = "saveBatchEntity")
void saveBatchEntity(String orderNo, String orderGoodsNo, List<String> trackList, LocalDateTime now);
@Select("select truck_no from order_goods_truck_bind where order_goods_no=#{orderGoodsNo}")
List<Integer> getTrucksByOrderGoodsNo(@Param("orderGoodsNo") String orderGoodsNo);
}
\ No newline at end of file
......@@ -31,7 +31,7 @@ public class OrderGoodsTruckBind implements HasKey<Integer> {
@TableField("order_no")
@ApiModelProperty("订单编号")
private String driverUserNo;
private String orderNo;
@TableField("order_goods_no")
@ApiModelProperty("货单编号")
......@@ -43,7 +43,7 @@ public class OrderGoodsTruckBind implements HasKey<Integer> {
@TableField("modified_time")
@ApiModelProperty("修改时间")
private LocalDateTime modifiedTime;
private LocalDateTime updateTime;
@Override
......
......@@ -5,8 +5,11 @@ 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.OrderChildPCVO;
import com.clx.performance.vo.pc.PageOrderChildPoundAuditVO;
import java.util.List;
/**
* @Author: aiqinguo
......@@ -38,4 +41,5 @@ public interface OrderChildService {
IPage<PageOrderChildPoundAuditVO> pagePoundAuditList(PagePoundAuditParam param);
List<OrderChildPCVO> getOrderChildInfoByOrderGoodsNo(String orderGoodsNo);
}
package com.clx.performance.service;
import java.util.List;
/**
* @author kavin
......@@ -10,9 +9,4 @@ import java.util.List;
*/
public interface OrderGoodsDriverTruckService {
/**
* 通过货单号获取定向车辆
*/
List<Integer> getTrucksByOrderGoodsNo(String orderGoodsNo);
}
package com.clx.performance.service;
import java.util.List;
public interface OrderGoodsTruckBindService {
List<Integer> getTrucksByOrderGoodsNo(String orderGoodsNo);
}
......@@ -20,6 +20,7 @@ import com.clx.performance.struct.OrderChildPoundImageStruct;
import com.clx.performance.struct.OrderChildStruct;
import com.clx.performance.vo.app.OrderChildVO;
import com.clx.performance.vo.app.SaveOrderChildVO;
import com.clx.performance.vo.pc.OrderChildPCVO;
import com.clx.performance.vo.pc.PageOrderChildPoundAuditVO;
import com.clx.user.vo.feign.DriverTruckInfoFeignVo;
import com.msl.common.enums.ResultCodeEnum;
......@@ -69,6 +70,7 @@ public class OrderChildServiceImpl implements OrderChildService {
private final OrderChildStruct orderChildStruct;
private final OrderChildPoundImageStruct orderChildPoundImageStruct;
@Autowired
private StringRedisTemplate stringRedisTemplate;
......@@ -727,4 +729,11 @@ public class OrderChildServiceImpl implements OrderChildService {
return orderChildDao.pagePoundAuditList(param);
}
@Override
public List<OrderChildPCVO> getOrderChildInfoByOrderGoodsNo(String orderGoodsNo) {
List<OrderChild> orderChildren = orderChildDao.getOrderChildInfoByOrderGoodsNo(orderGoodsNo)
.orElseThrow(PerformanceResultEnum.ORDER_CHILD_NO_FOUND);
return orderChildStruct.convertList(orderChildren);
}
}
......@@ -18,10 +18,5 @@ import java.util.List;
@AllArgsConstructor
public class OrderGoodsDriverTruckServiceImpl implements OrderGoodsDriverTruckService {
private final OrderGoodsDriverTruckDao orderGoodsDriverTruckDao;
@Override
public List<Integer> getTrucksByOrderGoodsNo(String orderGoodsNo) {
return orderGoodsDriverTruckDao.getTrucksByOrderGoodsNo(orderGoodsNo);
}
}
package com.clx.performance.service.impl;
import com.clx.performance.dao.OrderGoodsTruckBindDao;
import com.clx.performance.service.OrderGoodsTruckBindService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class OrderGoodsTruckBindServiceImpl implements OrderGoodsTruckBindService {
@Autowired
private OrderGoodsTruckBindDao orderGoodsTruckBindDao;
@Override
public List<Integer> getTrucksByOrderGoodsNo(String orderGoodsNo) {
return orderGoodsTruckBindDao.getTrucksByOrderGoodsNo(orderGoodsNo);
}
}
package com.clx.performance.sqlProvider;
import java.time.LocalDateTime;
import java.util.List;
public class OrderGoodsTruckBindSqlProvider {
public String saveBatchEntity(String orderNo, String orderGoodsNo, List<String> trackList, LocalDateTime now) {
StringBuffer sqlList = new StringBuffer();
sqlList.append(" INSERT INTO msg_app_msg_record(order_no,order_goods_no,truck_no,create_time,update_time) VALUES ");
for (int i = 0; i < trackList.size(); i++) {
String truckNo = trackList.get(i);
sqlList.append(" (").append(orderNo).append(",").append(orderGoodsNo).append(",").append(truckNo).append(",")
.append(now).append(",").append(now)
.append(")");
if (i < trackList.size() - 1) {
sqlList.append(",");
}
}
return sqlList.toString();
}
}
......@@ -2,13 +2,18 @@ package com.clx.performance.struct;
import com.clx.performance.model.OrderChild;
import com.clx.performance.vo.app.OrderChildVO;
import com.clx.performance.vo.pc.OrderChildPCVO;
import com.msl.common.utils.DateStructUtil;
import com.msl.common.utils.DateUtils;
import org.mapstruct.Mapper;
import java.util.List;
@Mapper(componentModel = "spring", uses = DateStructUtil.class, imports = {DateUtils.class})
public interface OrderChildStruct {
OrderChildVO convert(OrderChild item);
List<OrderChildPCVO> convertList(List<OrderChild> item);
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论