提交 ca7ef0ad authored 作者: liruixin's avatar liruixin

Merge remote-tracking branch 'origin/v4.9_create_goods_child_20230918' into…

Merge remote-tracking branch 'origin/v4.9_create_goods_child_20230918' into v4.9_create_goods_child_20230918
...@@ -28,7 +28,7 @@ public class PageCarrierOrderListParam extends PageParam { ...@@ -28,7 +28,7 @@ public class PageCarrierOrderListParam extends PageParam {
@ApiModelProperty(value = "开始时间", example = "2023-09-09 12:00:01", required = true) @ApiModelProperty(value = "开始时间", example = "2023-09-09 12:00:01", required = true)
private String beginTime; private String beginTime;
@ApiModelProperty(value = "结束", example = "2023-09-09 12:00:01", required = true) @ApiModelProperty(value = "结束时间", example = "2023-09-09 12:00:01", required = true)
private String endTime; private String endTime;
@ApiModelProperty(value = "时间类型: 1创建时间 2拉运开始时间 3拉运结束时间 ") @ApiModelProperty(value = "时间类型: 1创建时间 2拉运开始时间 3拉运结束时间 ")
......
package com.clx.order.params;
import com.msl.common.base.PageParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import javax.validation.constraints.NotNull;
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class PageOrderGoodsListParam extends PageParam {
@ApiModelProperty(value = "订单编号")
private String orderNo;
@ApiModelProperty(value = "货单编号")
private String orderGoodsNo;
@ApiModelProperty(value = "货单编号类型")
private String orderGoodsType;
@ApiModelProperty(value = "货单状态: 10:已挂单 20:挂单中 30:运输中 40:已完成 50:已取消")
private Integer orderGoodsStatus;
@ApiModelProperty(value = "开始时间", example = "2023-09-09 12:00:01")
private String beginTime;
@ApiModelProperty(value = "结束时间", example = "2023-09-09 12:00:01")
private String endTime;
@ApiModelProperty(value = "用车类型: 1平台车辆 2部分平台车辆 3自有车辆")
private Integer truckDemand;
}
package com.clx.performance.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.Arrays;
import java.util.Optional;
public enum OrderGoodsStatusEnum {
;
@Getter
@AllArgsConstructor
public enum Status {
CREATED(10, "已挂单"),
PAYING(20, "挂单中"),
GO_TO_SEND(30, "运输中"),
ARRIVE_SEND(40, "已完成"),
CANCEL(50, "已取消"),
;
private final Integer code;
private final String name;
public static Optional<Status> getByCode(Integer code) {
return Arrays.stream(values()).filter(e -> e.code == code).findFirst();
}
}
}
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 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;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.math.BigDecimal;
/**
* @Author: aiqinguo
* @Description: 运单表
* @Date: 2023/09/18 11:34:50
* @Version: 1.0
*/
@Getter
@Setter
@NoArgsConstructor
public class OrderGoodsVO {
@ApiModelProperty("订单编号")
private String orderNo;
@ApiModelProperty("货单编号类型")
private String orderGoodsType;
@ApiModelProperty("货单编号")
private String orderGoodsNo;
@ApiModelProperty("货单状态")
private Integer orderGoodsStatus;
@ApiModelProperty("提取吨数")
private BigDecimal extractWeight;
@ApiModelProperty("剩余拉运吨数")
private BigDecimal residueTransportWeight;
@ApiModelProperty("发货地址ID")
private Integer sendAddressId;
@ApiModelProperty("发货地址简称")
private String sendAddressShorter;
@ApiModelProperty("发货地址经度")
private BigDecimal sendLongitude;
@ApiModelProperty("发货地址纬度")
private BigDecimal sendLatitude;
@ApiModelProperty("收货地址ID")
private Integer receiveAddressId;
@ApiModelProperty("收货地址简称")
private String receiveAddressShorter;
@ApiModelProperty("收货地址经度")
private BigDecimal receiveLongitude;
@ApiModelProperty("收货地址纬度")
private BigDecimal receiveLatitude;
@ApiModelProperty("货物ID")
private Integer goodsId;
@ApiModelProperty("货物名称")
private String goodsName;
@ApiModelProperty("挂单方式 1公开派单 2定向派单")
private Integer pendingOrderWay;
@ApiModelProperty("定向运单失效时间")
private String directionalExpireTime;
@ApiModelProperty("最晚到达货源地时间/运单的最晚装货时间")
private String lastArriveSendTime;
@ApiModelProperty("挂单时间")
private String pendingOrderTime;
@ApiModelProperty("提取方式 1提取全部 2提取部分")
private Integer extractWay;
@ApiModelProperty("需要车辆/辆")
private Integer needTruckNum;
@ApiModelProperty("高级物流经理id")
private Integer seniorLogisticsManagerId;
@ApiModelProperty("高级物流经理姓名")
private String seniorLogisticsManagerName;
@ApiModelProperty("挂单运费")
@MoneyOutConvert
private BigDecimal pendingOrderFreight;
@ApiModelProperty("创建人用户编号")
private Long userNo;
@ApiModelProperty("创建人姓名")
private String userName;
@ApiModelProperty("创建时间")
private String createTime;
}
\ No newline at end of file
package com.clx.performance.controller.app;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.order.feign.OrderFeign;
import com.clx.order.params.OrderGoodsChildParams;
import com.clx.order.params.OrderGoodsParams;
import com.clx.order.params.PageCarrierOrderListParam;
import com.clx.order.params.PageOrderGoodsListParam;
import com.clx.order.vo.feign.FeignOrderVO;
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.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.OrderGoodsService;
import com.clx.performance.vo.pc.OrderGoodsVO;
import com.msl.common.base.PageData;
import com.msl.common.convertor.aspect.UnitCovert;
import com.msl.common.result.Result;
import com.msl.common.utils.DateUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.core.MessageBuilder;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
import java.util.concurrent.TimeUnit;
/**
* @ClassName GoodsOrderController
* @Description
* @Author kavin
* @Date 2023/9/17 17:16
* @Version 1.0
*/
@Slf4j
@RestController
@RequestMapping("/app/goodsOrder")
@Validated
@Api(tags = "APP-货单")
public class AppGoodsOrderController {
@Autowired
OrderGoodsService orderGoodsService;
@Autowired
OrderGoodsMapper orderGoodsMapper;
@ApiOperation(value = "查看货单详情", notes = "<br>By:胡宇帆")
@GetMapping("/getOrderGoodsInfo")
@UnitCovert(param = false)
public Result<OrderGoodsVO> getOrderGoodsInfo(@RequestParam String orderGoodsNo) {
return Result.ok(orderGoodsService.getOrderGoodsInfoByOrderGoodsNo(orderGoodsNo));
}
}
package com.clx.performance.controller.pc; package com.clx.performance.controller.pc;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.order.feign.OrderFeign; import com.clx.order.feign.OrderFeign;
import com.clx.order.param.feign.FeignPageCarrierOrderListParam;
import com.clx.order.params.OrderGoodsChildParams; import com.clx.order.params.OrderGoodsChildParams;
import com.clx.order.params.OrderGoodsParams; import com.clx.order.params.OrderGoodsParams;
import com.clx.order.params.PageCarrierOrderListParam; import com.clx.order.params.PageCarrierOrderListParam;
import com.clx.order.params.PageOrderGoodsListParam;
import com.clx.order.vo.feign.FeignOrderVO; import com.clx.order.vo.feign.FeignOrderVO;
import com.clx.order.vo.feign.FeignPageOrderVO; import com.clx.order.vo.feign.FeignPageOrderVO;
import com.clx.performance.component.OrderGoodsIdGenerate; import com.clx.performance.component.OrderGoodsIdGenerate;
import com.clx.performance.constant.RabbitKeyConstants; import com.clx.performance.constant.RabbitKeyConstants;
import com.clx.performance.constant.RedisConstants; import com.clx.performance.constant.RedisConstants;
import com.clx.performance.enums.OrderGoodsStatusEnum;
import com.clx.performance.enums.OrderGoodsTypeEnum;
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.service.OrderGoodsService; import com.clx.performance.service.OrderGoodsService;
import com.clx.performance.vo.pc.OrderGoodsVO;
import com.msl.common.base.PageData; import com.msl.common.base.PageData;
import com.msl.common.convertor.aspect.UnitCovert; import com.msl.common.convertor.aspect.UnitCovert;
import com.msl.common.result.Result; import com.msl.common.result.Result;
import com.msl.common.utils.DateUtils; import com.msl.common.utils.DateUtils;
import com.msl.user.data.UserSessionData;
import com.msl.user.utils.TokenUtil;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -29,19 +30,13 @@ import org.redisson.api.RLock; ...@@ -29,19 +30,13 @@ import org.redisson.api.RLock;
import org.redisson.api.RedissonClient; import org.redisson.api.RedissonClient;
import org.springframework.amqp.core.Message; import org.springframework.amqp.core.Message;
import org.springframework.amqp.core.MessageBuilder; import org.springframework.amqp.core.MessageBuilder;
import org.springframework.amqp.core.MessageProperties;
import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.List; import java.util.List;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
...@@ -111,7 +106,7 @@ public class GoodsOrderController { ...@@ -111,7 +106,7 @@ public class GoodsOrderController {
OrderGoods orderGoods = new OrderGoods(); OrderGoods orderGoods = new OrderGoods();
//提取吨数 //提取吨数
orderGoods.setExtractWeight(child.getExtractWeight()); orderGoods.setExtractWeight(child.getExtractWeight());
orderGoods.setExtractWeight(child.getExtractWeight()); orderGoods.setResidueTransportWeight(child.getExtractWeight());
//提取方式 1提取全部 2提取部分 //提取方式 1提取全部 2提取部分
Integer extractWay = child.getExtractWay(); Integer extractWay = child.getExtractWay();
orderGoods.setExtractWay(extractWay); orderGoods.setExtractWay(extractWay);
...@@ -124,7 +119,7 @@ public class GoodsOrderController { ...@@ -124,7 +119,7 @@ public class GoodsOrderController {
if (sendLazyTime == null) { if (sendLazyTime == null) {
sendLazyTime = postedTime; sendLazyTime = postedTime;
}else if (sendLazyTime.isAfter(postedTime)) { } else if (sendLazyTime.isAfter(postedTime)) {
sendLazyTime = postedTime; sendLazyTime = postedTime;
} }
...@@ -138,9 +133,9 @@ public class GoodsOrderController { ...@@ -138,9 +133,9 @@ public class GoodsOrderController {
orderGoods.setSeniorLogisticsManagerName(child.getSeniorLogisticsManagerName()); orderGoods.setSeniorLogisticsManagerName(child.getSeniorLogisticsManagerName());
orderGoods.setOrderNo(orderNo); orderGoods.setOrderNo(orderNo);
orderGoods.setOrderGoodsType("PT"); orderGoods.setOrderGoodsType(OrderGoodsTypeEnum.Status.PLATFORM.getCode());
orderGoods.setOrderGoodsNo("PT" + beginOrderGoodsId); orderGoods.setOrderGoodsNo(String.valueOf(beginOrderGoodsId));
orderGoods.setOrderGoodsStatus(10); orderGoods.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.CREATED.getCode());
orderGoods.setSendAddressId(orderInfo.getSendAddressId()); orderGoods.setSendAddressId(orderInfo.getSendAddressId());
orderGoods.setSendAddressShorter(orderInfo.getSendAddressShorter()); orderGoods.setSendAddressShorter(orderInfo.getSendAddressShorter());
//收发货经纬度 //收发货经纬度
...@@ -173,7 +168,7 @@ public class GoodsOrderController { ...@@ -173,7 +168,7 @@ public class GoodsOrderController {
OrderGoods orderGoods = new OrderGoods(); OrderGoods orderGoods = new OrderGoods();
//提取吨数 //提取吨数
orderGoods.setExtractWeight(child.getExtractWeight()); orderGoods.setExtractWeight(child.getExtractWeight());
orderGoods.setExtractWeight(child.getExtractWeight()); orderGoods.setResidueTransportWeight(child.getExtractWeight());
//提取方式 1提取全部 2提取部分 //提取方式 1提取全部 2提取部分
Integer extractWay = child.getExtractWay(); Integer extractWay = child.getExtractWay();
if (extractWay.equals(2)) { if (extractWay.equals(2)) {
...@@ -189,7 +184,7 @@ public class GoodsOrderController { ...@@ -189,7 +184,7 @@ public class GoodsOrderController {
if (sendLazyTime == null) { if (sendLazyTime == null) {
sendLazyTime = postedTime; sendLazyTime = postedTime;
}else if (sendLazyTime.isAfter(postedTime)) { } else if (sendLazyTime.isAfter(postedTime)) {
sendLazyTime = postedTime; sendLazyTime = postedTime;
} }
orderGoods.setPendingOrderTime(postedTime); orderGoods.setPendingOrderTime(postedTime);
...@@ -202,9 +197,9 @@ public class GoodsOrderController { ...@@ -202,9 +197,9 @@ public class GoodsOrderController {
orderGoods.setSeniorLogisticsManagerName(child.getSeniorLogisticsManagerName()); orderGoods.setSeniorLogisticsManagerName(child.getSeniorLogisticsManagerName());
orderGoods.setOrderNo(orderNo); orderGoods.setOrderNo(orderNo);
orderGoods.setOrderGoodsType("PT"); orderGoods.setOrderGoodsType(OrderGoodsTypeEnum.Status.PLATFORM.getCode());
orderGoods.setOrderGoodsNo("PT" + beginOrderGoodsId); orderGoods.setOrderGoodsNo(String.valueOf(beginOrderGoodsId));
orderGoods.setOrderGoodsStatus(10); orderGoods.setOrderGoodsStatus(OrderGoodsStatusEnum.Status.CREATED.getCode());
orderGoods.setSendAddressId(orderInfo.getSendAddressId()); orderGoods.setSendAddressId(orderInfo.getSendAddressId());
orderGoods.setSendAddressShorter(orderInfo.getSendAddressShorter()); orderGoods.setSendAddressShorter(orderInfo.getSendAddressShorter());
//收发货经纬度 //收发货经纬度
...@@ -253,4 +248,22 @@ public class GoodsOrderController { ...@@ -253,4 +248,22 @@ public class GoodsOrderController {
Result<PageData<FeignPageOrderVO>> dataResult = orderFeign.pageCarrierOrderList(JSONUtil.parse(param).toString()); Result<PageData<FeignPageOrderVO>> dataResult = orderFeign.pageCarrierOrderList(JSONUtil.parse(param).toString());
return dataResult; return dataResult;
} }
@ApiOperation(value = "查看货单详情", notes = "<br>By:胡宇帆")
@GetMapping("/getOrderGoodsInfo")
@UnitCovert(param = false)
public Result<OrderGoodsVO> getOrderGoodsInfo(@RequestParam String orderGoodsNo) {
return Result.ok(orderGoodsService.getOrderGoodsInfoByOrderGoodsNo(orderGoodsNo));
}
@ApiOperation(value = "查看货单列表", notes = "<br>By:胡宇帆")
@PostMapping("/pageOrderGoodsList")
@UnitCovert(param = false)
public Result<PageData<OrderGoodsVO>> pageOrderGoodsList(@RequestBody @Validated PageOrderGoodsListParam param) {
if (StringUtils.isNotBlank(param.getOrderGoodsNo())) {
param.setOrderGoodsType(param.getOrderGoodsNo().substring(0, 2));
}
IPage<OrderGoodsVO> page = orderGoodsService.pageOrderGoodsList(param);
return Result.page(page.getRecords(), page.getTotal(), page.getPages());
}
} }
package com.clx.performance.dao; package com.clx.performance.dao;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.order.params.PageOrderGoodsListParam;
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 com.clx.performance.mapper.OrderGoodsMapper;
...@@ -15,4 +18,7 @@ public interface OrderGoodsDao extends BaseDao<OrderGoodsMapper, OrderGoods, Int ...@@ -15,4 +18,7 @@ public interface OrderGoodsDao extends BaseDao<OrderGoodsMapper, OrderGoods, Int
Optional<OrderGoods> getByOrderGoodsNo(String orderGoodsNo); Optional<OrderGoods> getByOrderGoodsNo(String orderGoodsNo);
Optional<OrderGoods> getOrderGoodsInfoByOrderGoodsNo(String orderGoodsNo);
IPage<OrderGoodsVO> pageOrderGoodsList(PageOrderGoodsListParam param);
} }
package com.clx.performance.dao.impl; 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.dao.OrderGoodsDao;
import com.clx.performance.vo.pc.OrderGoodsVO;
import com.msl.common.dao.BaseDao; import com.msl.common.dao.BaseDao;
import com.msl.common.dao.impl.BaseDaoImpl; import com.msl.common.dao.impl.BaseDaoImpl;
import com.clx.performance.mapper.OrderGoodsMapper; import com.clx.performance.mapper.OrderGoodsMapper;
...@@ -31,4 +36,19 @@ public class OrderGoodsDaoImpl extends BaseDaoImpl<OrderGoodsMapper, OrderGoods, ...@@ -31,4 +36,19 @@ public class OrderGoodsDaoImpl extends BaseDaoImpl<OrderGoodsMapper, OrderGoods,
.map(super::getOne); .map(super::getOne);
} }
@Override
public Optional<OrderGoods> getOrderGoodsInfoByOrderGoodsNo(String orderGoodsNo) {
return Optional.of(orderGoodsNo)
.map(item -> lQrWrapper()
.eq(OrderGoods::getOrderGoodsNo, item)
)
.map(super::getOne);
}
@Override
public IPage<OrderGoodsVO> pageOrderGoodsList(PageOrderGoodsListParam param) {
Page<OrderGoodsVO> page = Page.of(param.getPage(), param.getPageSize());
return baseMapper.pageOrderGoodsList(page, param);
}
} }
...@@ -27,7 +27,7 @@ import java.util.Objects; ...@@ -27,7 +27,7 @@ import java.util.Objects;
@Component @Component
public class TruckTraceJob { public class TruckTraceJob {
@Resource @Autowired(required = false)
UserClxFeign userClxFeign; UserClxFeign userClxFeign;
@Autowired @Autowired
ZjxlGpsService zjxlGpsService; ZjxlGpsService zjxlGpsService;
......
package com.clx.performance.mapper; package com.clx.performance.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; 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.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 org.apache.ibatis.annotations.SelectProvider; import org.apache.ibatis.annotations.SelectProvider;
/** /**
...@@ -14,4 +18,7 @@ public interface OrderGoodsMapper extends BaseMapper<OrderGoods> { ...@@ -14,4 +18,7 @@ public interface OrderGoodsMapper extends BaseMapper<OrderGoods> {
@SelectProvider(type = OrderGoodsSqlProvider.class, method = "getMaxOrderGoodsId") @SelectProvider(type = OrderGoodsSqlProvider.class, method = "getMaxOrderGoodsId")
Long getMaxOrderGoodsId(String type); Long getMaxOrderGoodsId(String type);
@SelectProvider(type = OrderGoodsSqlProvider.class, method = "pageOrderGoodsList")
IPage<OrderGoodsVO> pageOrderGoodsList(Page<OrderGoodsVO> page, PageOrderGoodsListParam param);
} }
package com.clx.performance.service; package com.clx.performance.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.order.params.PageOrderGoodsListParam;
import com.clx.performance.vo.pc.OrderGoodsVO;
import com.msl.common.base.PageData;
import com.msl.common.result.Result;
/** /**
* @author kavin * @author kavin
* Date 2023-09-17 * Date 2023-09-17
* Time 16:45 * Time 16:45
*/ */
public interface OrderGoodsService { public interface OrderGoodsService {
OrderGoodsVO getOrderGoodsInfoByOrderGoodsNo(String orderGoodsNo);
IPage<OrderGoodsVO> pageOrderGoodsList(PageOrderGoodsListParam param);
} }
package com.clx.performance.service.impl; package com.clx.performance.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.order.params.PageOrderGoodsListParam;
import com.clx.performance.dao.OrderGoodsDao;
import com.clx.performance.service.OrderGoodsService; import com.clx.performance.service.OrderGoodsService;
import com.clx.performance.struct.OrderGoodsStruct;
import com.clx.performance.vo.pc.OrderGoodsVO;
import com.msl.common.base.PageData;
import com.msl.common.result.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
/** /**
...@@ -10,4 +18,20 @@ import org.springframework.stereotype.Service; ...@@ -10,4 +18,20 @@ import org.springframework.stereotype.Service;
*/ */
@Service @Service
public class OrderGoodsServiceImpl implements OrderGoodsService { public class OrderGoodsServiceImpl implements OrderGoodsService {
@Autowired
private OrderGoodsDao orderGoodsDao;
@Autowired
private OrderGoodsStruct orderGoodsStruct;
@Override
public OrderGoodsVO getOrderGoodsInfoByOrderGoodsNo(String orderGoodsNo) {
return orderGoodsDao.getOrderGoodsInfoByOrderGoodsNo(orderGoodsNo).map(orderGoodsStruct::convert).get();
}
@Override
public IPage<OrderGoodsVO> pageOrderGoodsList(PageOrderGoodsListParam param) {
return orderGoodsDao.pageOrderGoodsList(param);
}
} }
package com.clx.performance.sqlProvider; package com.clx.performance.sqlProvider;
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.enums.OrderGoodsStatusEnum;
import org.apache.commons.lang3.StringUtils;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.jdbc.SQL;
import java.util.Objects;
public class OrderGoodsSqlProvider { public class OrderGoodsSqlProvider {
public String getMaxOrderGoodsId(String type) { public String getMaxOrderGoodsId(String type) {
...@@ -7,5 +17,59 @@ public class OrderGoodsSqlProvider { ...@@ -7,5 +17,59 @@ 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 " +
" 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," +
" date_format(a.directional_expire_time, '%Y-%m-%d %H:%i:%s') as directional_expire_time ," +
" date_format(a.last_arrive_send_time, '%Y-%m-%d %H:%i:%s') as last_arrive_send_time ," +
" date_format(a.pending_order_time, '%Y-%m-%d %H:%i:%s') as pending_order_time," +
" 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," +
"a.valid_freight_price ");
FROM("order_info a");
if (StringUtils.isNotBlank(param.getBeginTime()) && StringUtils.isNotBlank(param.getEndTime())) {
WHERE("a.create_time >= #{param.beginTime}");
WHERE("a.create_time <= #{param.endTime}");
}
if (Objects.nonNull(param.getTruckDemand())) {
if (1 == param.getTruckDemand()) {
WHERE("a.truck_demand = #{param.truckDemand}");
} else if (2 == param.getTruckDemand()) {
WHERE("a.truck_demand = #{param.truckDemand}");
} else if (3 == param.getTruckDemand()) {
WHERE("a.truck_demand = #{param.truckDemand}");
}
}
if (Objects.nonNull(param.getOrderGoodsStatus())) {
if (OrderGoodsStatusEnum.Status.CREATED.getCode().equals(param.getOrderGoodsStatus())) {
WHERE("a.order_goods_status = #{param.orderGoodsStatus}");
} else if (OrderGoodsStatusEnum.Status.PAYING.getCode().equals(param.getOrderGoodsStatus())) {
WHERE("a.order_goods_status = #{param.orderGoodsStatus}");
} else if (OrderGoodsStatusEnum.Status.GO_TO_SEND.getCode().equals(param.getOrderGoodsStatus())) {
WHERE("a.order_goods_status = #{param.orderGoodsStatus}");
} else if (OrderGoodsStatusEnum.Status.ARRIVE_SEND.getCode().equals(param.getOrderGoodsStatus())) {
WHERE("a.order_goods_status = #{param.orderGoodsStatus}");
} else if (OrderGoodsStatusEnum.Status.CANCEL.getCode().equals(param.getOrderGoodsStatus())) {
WHERE("a.order_goods_status = #{param.orderGoodsStatus}");
}
}
if (StringUtils.isNotBlank(param.getOrderNo())) {
WHERE("a.order_no = #{param.orderNo}");
}
if (StringUtils.isNotBlank(param.getOrderGoodsNo())) {
WHERE("a.order_goods_no = #{param.orderGoodsNo}");
}
ORDER_BY("a.create_time desc");
}}.toString();
return sql;
}
} }
package com.clx.performance.struct;
import com.clx.performance.model.OrderGoods;
import com.clx.performance.vo.pc.OrderGoodsVO;
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 OrderGoodsStruct {
OrderGoodsVO convert(OrderGoods orderGoods);
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论