提交 7ec45232 authored 作者: jiangwujie's avatar jiangwujie

feature(电子围栏):运单查找

①增加【车牌号】检索框,精准检索,默认空 ②查找范围修改,可查找到【已接单】【前往货源地】【到达货源地】【装车成功】【前往目的地】【到达目的地】的运单
上级 a46ecc5a
package com.clx.performance.param.pc;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@Data
public class ArtificialCancelOrderQueryParam {
@ApiModelProperty("运单编号")
private String orderChildNo;
@ApiModelProperty("车牌号")
private String truckNo;
public void checkParam() {
if (orderChildNo == null && truckNo == null) {
throw new IllegalArgumentException("运单编号和车牌号不能同时为空");
}
}
}
...@@ -3,6 +3,7 @@ package com.clx.performance.controller.pc; ...@@ -3,6 +3,7 @@ package com.clx.performance.controller.pc;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.param.pc.ArtificialCancelOrderParam; import com.clx.performance.param.pc.ArtificialCancelOrderParam;
import com.clx.performance.param.pc.ArtificialCancelOrderQueryParam;
import com.clx.performance.param.pc.OrderCancelParam; import com.clx.performance.param.pc.OrderCancelParam;
import com.clx.performance.param.pc.OrderChildCancelRecordParam; import com.clx.performance.param.pc.OrderChildCancelRecordParam;
import com.clx.performance.service.OrderCancelService; import com.clx.performance.service.OrderCancelService;
...@@ -44,8 +45,8 @@ public class OrderCancelController { ...@@ -44,8 +45,8 @@ public class OrderCancelController {
@ApiOperation(value = "客服取消运单查询", notes = "<br>By:胡宇帆") @ApiOperation(value = "客服取消运单查询", notes = "<br>By:胡宇帆")
@GetMapping("/findArtificialCancelOrder") @GetMapping("/findArtificialCancelOrder")
public Result<OrderChildVO> findArtificialCancelOrder(@RequestParam String orderChildNo) { public Result<OrderChildVO> findArtificialCancelOrder(ArtificialCancelOrderQueryParam param) {
OrderChildVO vo = orderCancelService.findArtificialCancelOrder(orderChildNo); OrderChildVO vo = orderCancelService.findArtificialCancelOrder(param);
return Result.ok(vo); return Result.ok(vo);
} }
......
...@@ -151,7 +151,7 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int ...@@ -151,7 +151,7 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int
* @param orderChildNo * @param orderChildNo
* @return * @return
*/ */
OrderChildVO findArtificialCancelOrder(String orderChildNo); OrderChildVO findArtificialCancelOrder(ArtificialCancelOrderQueryParam param);
IPage<OrderChildVO> orderChildCancelRecord(OrderChildCancelRecordParam param); IPage<OrderChildVO> orderChildCancelRecord(OrderChildCancelRecordParam param);
......
...@@ -440,8 +440,8 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild, ...@@ -440,8 +440,8 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
} }
@Override @Override
public OrderChildVO findArtificialCancelOrder(String orderChildNo) { public OrderChildVO findArtificialCancelOrder(ArtificialCancelOrderQueryParam param) {
return baseMapper.findArtificialCancelOrder(orderChildNo); return baseMapper.findArtificialCancelOrder(param);
} }
@Override @Override
......
...@@ -8,10 +8,7 @@ import com.clx.performance.dto.linewarn.LineWarnOrderChildStatisticsDTO; ...@@ -8,10 +8,7 @@ import com.clx.performance.dto.linewarn.LineWarnOrderChildStatisticsDTO;
import com.clx.performance.model.OrderChild; import com.clx.performance.model.OrderChild;
import com.clx.performance.param.app.PageOrderChildOfDriverParam; import com.clx.performance.param.app.PageOrderChildOfDriverParam;
import com.clx.performance.param.app.PageOrderChildOfDriverSearchParam; import com.clx.performance.param.app.PageOrderChildOfDriverSearchParam;
import com.clx.performance.param.pc.OrderChildCancelRecordParam; import com.clx.performance.param.pc.*;
import com.clx.performance.param.pc.OrderChildReportParam;
import com.clx.performance.param.pc.PageCarrierOrderChildParam;
import com.clx.performance.param.pc.PagePoundAuditParam;
import com.clx.performance.sqlProvider.OrderChildSqlProvider; import com.clx.performance.sqlProvider.OrderChildSqlProvider;
import com.clx.performance.vo.MonthInComeAndOrderedVO; import com.clx.performance.vo.MonthInComeAndOrderedVO;
import com.clx.performance.vo.app.OrderChildVO; import com.clx.performance.vo.app.OrderChildVO;
...@@ -83,7 +80,7 @@ public interface OrderChildMapper extends BaseMapper<OrderChild> { ...@@ -83,7 +80,7 @@ public interface OrderChildMapper extends BaseMapper<OrderChild> {
@SelectProvider(type = OrderChildSqlProvider.class, method = "findArtificialCancelOrder") @SelectProvider(type = OrderChildSqlProvider.class, method = "findArtificialCancelOrder")
OrderChildVO findArtificialCancelOrder(@Param("orderChildNo") String orderChildNo); OrderChildVO findArtificialCancelOrder(@Param("param") ArtificialCancelOrderQueryParam param);
@SelectProvider(type = OrderChildSqlProvider.class, method = "orderChildCancelRecord") @SelectProvider(type = OrderChildSqlProvider.class, method = "orderChildCancelRecord")
IPage<OrderChildVO> orderChildCancelRecord(@Param("page")Page<OrderChildVO> page, @Param(value = "param") OrderChildCancelRecordParam param); IPage<OrderChildVO> orderChildCancelRecord(@Param("page")Page<OrderChildVO> page, @Param(value = "param") OrderChildCancelRecordParam param);
......
package com.clx.performance.service; package com.clx.performance.service;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.param.pc.ArtificialCancelOrderQueryParam;
import com.clx.performance.param.pc.OrderCancelParam; import com.clx.performance.param.pc.OrderCancelParam;
import com.clx.performance.param.pc.OrderChildCancelRecordParam; import com.clx.performance.param.pc.OrderChildCancelRecordParam;
import com.clx.performance.vo.app.OrderChildVO; import com.clx.performance.vo.app.OrderChildVO;
import com.msl.common.base.PageParam;
import java.util.List;
public interface OrderCancelService { public interface OrderCancelService {
...@@ -47,7 +45,7 @@ public interface OrderCancelService { ...@@ -47,7 +45,7 @@ public interface OrderCancelService {
* @param orderChildNo * @param orderChildNo
* @return * @return
*/ */
OrderChildVO findArtificialCancelOrder(String orderChildNo); OrderChildVO findArtificialCancelOrder(ArtificialCancelOrderQueryParam param);
IPage<OrderChildVO> orderChildCancelRecord(OrderChildCancelRecordParam param); IPage<OrderChildVO> orderChildCancelRecord(OrderChildCancelRecordParam param);
} }
...@@ -23,6 +23,7 @@ import com.clx.performance.extranal.user.DriverService; ...@@ -23,6 +23,7 @@ import com.clx.performance.extranal.user.DriverService;
import com.clx.performance.extranal.user.OwnerInfoService; import com.clx.performance.extranal.user.OwnerInfoService;
import com.clx.performance.model.OrderChild; import com.clx.performance.model.OrderChild;
import com.clx.performance.model.OrderGoods; import com.clx.performance.model.OrderGoods;
import com.clx.performance.param.pc.ArtificialCancelOrderQueryParam;
import com.clx.performance.param.pc.OrderCancelParam; import com.clx.performance.param.pc.OrderCancelParam;
import com.clx.performance.param.pc.OrderChildCancelRecordParam; import com.clx.performance.param.pc.OrderChildCancelRecordParam;
import com.clx.performance.service.*; import com.clx.performance.service.*;
...@@ -758,8 +759,10 @@ public class OrderCancelServiceImpl implements OrderCancelService { ...@@ -758,8 +759,10 @@ public class OrderCancelServiceImpl implements OrderCancelService {
} }
@Override @Override
public OrderChildVO findArtificialCancelOrder(String orderChildNo) { public OrderChildVO findArtificialCancelOrder(ArtificialCancelOrderQueryParam param) {
OrderChildVO artificialCancelOrder = orderChildDao.findArtificialCancelOrder(orderChildNo); //检查参数
param.checkParam();
OrderChildVO artificialCancelOrder = orderChildDao.findArtificialCancelOrder(param);
if (artificialCancelOrder == null) { if (artificialCancelOrder == null) {
return null; return null;
} }
......
...@@ -5,10 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; ...@@ -5,10 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.enums.OrderChildEnum; import com.clx.performance.enums.OrderChildEnum;
import com.clx.performance.param.app.PageOrderChildOfDriverParam; import com.clx.performance.param.app.PageOrderChildOfDriverParam;
import com.clx.performance.param.app.PageOrderChildOfDriverSearchParam; import com.clx.performance.param.app.PageOrderChildOfDriverSearchParam;
import com.clx.performance.param.pc.OrderChildCancelRecordParam; import com.clx.performance.param.pc.*;
import com.clx.performance.param.pc.OrderChildReportParam;
import com.clx.performance.param.pc.PageCarrierOrderChildParam;
import com.clx.performance.param.pc.PagePoundAuditParam;
import com.clx.performance.vo.app.OrderChildVO; import com.clx.performance.vo.app.OrderChildVO;
import com.clx.performance.vo.pc.PageCarrierOrderChildVO; import com.clx.performance.vo.pc.PageCarrierOrderChildVO;
import com.clx.performance.vo.pc.PageOrderChildPoundAuditVO; import com.clx.performance.vo.pc.PageOrderChildPoundAuditVO;
...@@ -17,6 +14,8 @@ import org.apache.ibatis.annotations.Param; ...@@ -17,6 +14,8 @@ import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.jdbc.SQL; import org.apache.ibatis.jdbc.SQL;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
...@@ -170,21 +169,39 @@ public class OrderChildSqlProvider { ...@@ -170,21 +169,39 @@ public class OrderChildSqlProvider {
return sql; return sql;
} }
public String findArtificialCancelOrder(@Param("orderChildNo") String orderChildNo) { public String findArtificialCancelOrder(@Param("param") ArtificialCancelOrderQueryParam param) {
String sql = "select child_no,goods_name,freight_price,order_no," + StringBuilder sql = new StringBuilder();
"send_address,receive_address," + sql.append("SELECT child_no, goods_name, freight_price, order_no, ");
"driver_user_no, driver_name,driver_mobile," + sql.append("send_address, receive_address, ");
"truck_no," + sql.append("driver_user_no, driver_name, driver_mobile, ");
"unload_pound_no,weight," + sql.append("truck_no, unload_pound_no, weight, ");
"cancel_remark," + sql.append("cancel_remark, pound_status, status, ");
"pound_status,status," + sql.append("DATE_FORMAT(load_deadline, '%Y-%m-%d %H:%i:%s') AS loadDeadline, ");
"date_format(load_deadline, '%Y-%m-%d %H:%i:%s') as loadDeadline," + sql.append("DATE_FORMAT(create_time, '%Y-%m-%d %H:%i:%s') AS createTime, ");
"date_format(create_time, '%Y-%m-%d %H:%i:%s') as createTime," + sql.append("DATE_FORMAT(unload_time, '%Y-%m-%d %H:%i:%s') AS unloadTime ");
"date_format(unload_time, '%Y-%m-%d %H:%i:%s') as unloadTime from order_child where child_no = #{orderChildNo}"; sql.append("FROM order_child ");
sql.append("WHERE 1=1 ");
sql += " and status >="+ OrderChildEnum.Status.LOAD.getCode();
sql += " and status <"+ OrderChildEnum.Status.UNSETTLE.getCode(); List<String> conditions = new ArrayList<>();
return sql; if (StringUtils.isNotBlank(param.getOrderChildNo())) {
conditions.add("child_no = #{param.orderChildNo}");
}
if (StringUtils.isNotBlank(param.getTruckNo())) {
conditions.add("truck_no = #{param.truckNo}");
}
List<Integer> statuses = Arrays.asList(
OrderChildEnum.Status.CREATED.getCode(),
OrderChildEnum.Status.GO_TO_SEND.getCode(),
OrderChildEnum.Status.ARRIVE_SEND.getCode(),
OrderChildEnum.Status.LOAD.getCode(),
OrderChildEnum.Status.GO_TO_RECEIVE.getCode(),
OrderChildEnum.Status.ARRIVE_RECEIVE.getCode(),
OrderChildEnum.Status.UNLOAD.getCode()
);
conditions.add("status IN (" + StringUtils.join(statuses, ", ") + ")");
sql.append("AND ");
sql.append(StringUtils.join(conditions, " AND "));
return sql.toString();
} }
public String orderChildCancelRecord(@Param("page") Page<OrderChildVO> page, @Param("param") OrderChildCancelRecordParam param) { public String orderChildCancelRecord(@Param("page") Page<OrderChildVO> page, @Param("param") OrderChildCancelRecordParam param) {
......
package com.clx.performance.sqlProvider;
import com.clx.performance.enums.OrderChildEnum;
import com.clx.performance.param.pc.ArtificialCancelOrderQueryParam;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
@RunWith(JUnit4.class)
public class OrderChildSqlProviderTest {
@Test
public void testFindArtificialCancelOrderWithParams() {
ArtificialCancelOrderQueryParam param = new ArtificialCancelOrderQueryParam();
param.setOrderChildNo("testChildNo");
param.setTruckNo("testTruckNo");
OrderChildSqlProvider orderChildSqlProvider = new OrderChildSqlProvider();
String sql = orderChildSqlProvider.findArtificialCancelOrder(param);
String expectedSql = "SELECT child_no, goods_name, freight_price, order_no, "
+ "send_address, receive_address, "
+ "driver_user_no, driver_name, driver_mobile, "
+ "truck_no, unload_pound_no, weight, "
+ "cancel_remark, pound_status, status, "
+ "DATE_FORMAT(load_deadline, '%Y-%m-%d %H:%i:%s') AS loadDeadline, "
+ "DATE_FORMAT(create_time, '%Y-%m-%d %H:%i:%s') AS createTime, "
+ "DATE_FORMAT(unload_time, '%Y-%m-%d %H:%i:%s') AS unloadTime "
+ "FROM order_child "
+ "WHERE 1=1 "
+ "AND child_no = #{param.orderChildNo} "
+ "AND truck_no = #{param.truckNo} "
+ "AND status IN (10, 30, 40, 50, 60, 70, 80)";
Assert.assertEquals("SQL statement does not match expected output", expectedSql, sql);
}
@Test
public void testFindArtificialCancelOrderWithoutParams() {
ArtificialCancelOrderQueryParam param = new ArtificialCancelOrderQueryParam();
OrderChildSqlProvider orderChildSqlProvider = new OrderChildSqlProvider();
String sql = orderChildSqlProvider.findArtificialCancelOrder(param);
List<Integer> statusList = Arrays.asList(
OrderChildEnum.Status.CREATED.getCode(),
OrderChildEnum.Status.GO_TO_SEND.getCode(),
OrderChildEnum.Status.ARRIVE_SEND.getCode(),
OrderChildEnum.Status.LOAD.getCode(),
OrderChildEnum.Status.GO_TO_RECEIVE.getCode(),
OrderChildEnum.Status.ARRIVE_RECEIVE.getCode(),
OrderChildEnum.Status.UNLOAD.getCode()
);
String expectedSql = "SELECT child_no, goods_name, freight_price, order_no, "
+ "send_address, receive_address, "
+ "driver_user_no, driver_name, driver_mobile, "
+ "truck_no, unload_pound_no, weight, "
+ "cancel_remark, pound_status, status, "
+ "DATE_FORMAT(load_deadline, '%Y-%m-%d %H:%i:%s') AS loadDeadline, "
+ "DATE_FORMAT(create_time, '%Y-%m-%d %H:%i:%s') AS createTime, "
+ "DATE_FORMAT(unload_time, '%Y-%m-%d %H:%i:%s') AS unloadTime "
+ "FROM order_child "
+ "WHERE 1=1 "
+ "AND status IN (" + String.join(", ", statusList.stream().map(String::valueOf).collect(Collectors.toList())) + ")";
Assert.assertEquals("SQL statement does not match expected output for empty parameters", expectedSql, sql);
}
}
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论