提交 8523b105 authored 作者: jiangwujie's avatar jiangwujie

Merge branch 'v21.1_jianzhuang_20240807' into dev

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("运单编号和车牌号不能同时为空");
}
}
}
......@@ -16,9 +16,12 @@ public class SaveDriverNoticeConfigParam {
@ApiModelProperty(value = "id")
private Integer id;
@ApiModelProperty("配置名称")
private String name;
@ApiModelProperty(value = "通知触发距离:默认1.5,最大9999.9")
private BigDecimal noticeTriggerDistance;
@ApiModelProperty(value = "启用状态 ,0:禁用,1:启用")
private Integer status;
}
}
\ No newline at end of file
......@@ -16,6 +16,9 @@ public class SaveOrderChildOperateLimitConfigParam {
@ApiModelProperty(value = "id")
private Integer id;
@ApiModelProperty("配置名称")
private String name;
@ApiModelProperty("可上传装车信息范围")
private BigDecimal allowUploadDistance;
......
......@@ -20,6 +20,9 @@ public class DriverNoticeConfigVO {
@ApiModelProperty(value = "id")
private Integer id;
@ApiModelProperty("配置名称")
private String name;
@ApiModelProperty(value = "通知触发距离:默认1.5,最大9999.9")
private BigDecimal noticeTriggerDistance;
......
......@@ -19,6 +19,9 @@ public class OrderChildOperateLimitConfigVO {
@ApiModelProperty(value = "id")
private Integer id;
@ApiModelProperty("配置名称")
private String name;
@ApiModelProperty("可上传装车信息范围:默认2.0,最大9999.9")
private BigDecimal allowUploadDistance;
......
......@@ -3,6 +3,7 @@ package com.clx.performance.controller.pc;
import com.baomidou.mybatisplus.core.metadata.IPage;
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.OrderChildCancelRecordParam;
import com.clx.performance.service.OrderCancelService;
......@@ -44,8 +45,8 @@ public class OrderCancelController {
@ApiOperation(value = "客服取消运单查询", notes = "<br>By:胡宇帆")
@GetMapping("/findArtificialCancelOrder")
public Result<OrderChildVO> findArtificialCancelOrder(@RequestParam String orderChildNo) {
OrderChildVO vo = orderCancelService.findArtificialCancelOrder(orderChildNo);
public Result<OrderChildVO> findArtificialCancelOrder(ArtificialCancelOrderQueryParam param) {
OrderChildVO vo = orderCancelService.findArtificialCancelOrder(param);
return Result.ok(vo);
}
......
......@@ -152,7 +152,7 @@ public interface OrderChildDao extends BaseDao<OrderChildMapper, OrderChild, Int
* @param orderChildNo
* @return
*/
OrderChildVO findArtificialCancelOrder(String orderChildNo);
OrderChildVO findArtificialCancelOrder(ArtificialCancelOrderQueryParam param);
IPage<OrderChildVO> orderChildCancelRecord(OrderChildCancelRecordParam param);
......
......@@ -4,6 +4,7 @@ import com.clx.performance.dao.DriverNoticeConfigDao;
import com.clx.performance.mapper.DriverNoticeConfigMapper;
import com.clx.performance.model.DriverNoticeConfig;
import com.msl.common.dao.impl.BaseDaoImpl;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Repository;
/**
......@@ -22,7 +23,9 @@ public class DriverNoticeConfigDaoImpl extends BaseDaoImpl<DriverNoticeConfigMap
public boolean updateConfig(DriverNoticeConfig config) {
return update(lUdWrapper()
.eq(DriverNoticeConfig::getId, config.getId())
.set(DriverNoticeConfig::getNoticeTriggerDistance, config.getNoticeTriggerDistance())
.set(StringUtils.isNotBlank(config.getName()), DriverNoticeConfig::getName, config.getName())
.set(config.getNoticeTriggerDistance() != null, DriverNoticeConfig::getNoticeTriggerDistance, config.getNoticeTriggerDistance())
.set(config.getStatus() != null, DriverNoticeConfig::getStatus, config.getStatus())
);
}
......
......@@ -442,8 +442,8 @@ public class OrderChildDaoImpl extends BaseDaoImpl<OrderChildMapper, OrderChild,
}
@Override
public OrderChildVO findArtificialCancelOrder(String orderChildNo) {
return baseMapper.findArtificialCancelOrder(orderChildNo);
public OrderChildVO findArtificialCancelOrder(ArtificialCancelOrderQueryParam param) {
return baseMapper.findArtificialCancelOrder(param);
}
@Override
......
......@@ -4,6 +4,7 @@ import com.clx.performance.dao.OrderChildOperateLimitConfigDao;
import com.clx.performance.mapper.OrderChildOperateLimitConfigMapper;
import com.clx.performance.model.OrderChildOperateLimitConfig;
import com.msl.common.dao.impl.BaseDaoImpl;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Repository;
/**
......@@ -23,7 +24,9 @@ public class OrderChildOperateLimitConfigDaoImpl extends BaseDaoImpl<OrderChildO
public boolean updateConfig(OrderChildOperateLimitConfig config) {
return update(lUdWrapper()
.eq(OrderChildOperateLimitConfig::getId, config.getId())
.set(OrderChildOperateLimitConfig::getAllowUploadDistance, config.getAllowUploadDistance())
.set(StringUtils.isNotBlank(config.getName()), OrderChildOperateLimitConfig::getName, config.getName())
.set(config.getAllowUploadDistance() != null, OrderChildOperateLimitConfig::getAllowUploadDistance, config.getAllowUploadDistance())
.set(config.getStatus() != null, OrderChildOperateLimitConfig::getStatus, config.getStatus())
);
}
......
......@@ -9,10 +9,7 @@ import com.clx.performance.dto.linewarn.LineWarnOrderChildStatisticsDTO;
import com.clx.performance.model.OrderChild;
import com.clx.performance.param.app.PageOrderChildOfDriverParam;
import com.clx.performance.param.app.PageOrderChildOfDriverSearchParam;
import com.clx.performance.param.pc.OrderChildCancelRecordParam;
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.param.pc.*;
import com.clx.performance.sqlProvider.OrderChildSqlProvider;
import com.clx.performance.vo.MonthInComeAndOrderedVO;
import com.clx.performance.vo.app.OrderChildVO;
......@@ -84,7 +81,7 @@ public interface OrderChildMapper extends BaseMapper<OrderChild> {
@SelectProvider(type = OrderChildSqlProvider.class, method = "findArtificialCancelOrder")
OrderChildVO findArtificialCancelOrder(@Param("orderChildNo") String orderChildNo);
OrderChildVO findArtificialCancelOrder(@Param("param") ArtificialCancelOrderQueryParam param);
@SelectProvider(type = OrderChildSqlProvider.class, method = "orderChildCancelRecord")
IPage<OrderChildVO> orderChildCancelRecord(@Param("page")Page<OrderChildVO> page, @Param(value = "param") OrderChildCancelRecordParam param);
......
......@@ -28,6 +28,10 @@ public class DriverNoticeConfig implements HasKey<Integer> {
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@TableField("name")
@ApiModelProperty("配置名称")
private String name;
@TableField("notice_trigger_distance")
@ApiModelProperty("通知触发距离")
private BigDecimal noticeTriggerDistance;
......
......@@ -28,6 +28,10 @@ public class OrderChildOperateLimitConfig implements HasKey<Integer> {
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@TableField("name")
@ApiModelProperty("配置名称")
private String name;
@TableField("allow_upload_distance")
@ApiModelProperty("可上传装车信息范围")
private BigDecimal allowUploadDistance;
......
package com.clx.performance.service;
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.OrderChildCancelRecordParam;
import com.clx.performance.vo.app.OrderChildVO;
import com.msl.common.base.PageParam;
import java.util.List;
public interface OrderCancelService {
......@@ -47,7 +45,7 @@ public interface OrderCancelService {
* @param orderChildNo
* @return
*/
OrderChildVO findArtificialCancelOrder(String orderChildNo);
OrderChildVO findArtificialCancelOrder(ArtificialCancelOrderQueryParam param);
IPage<OrderChildVO> orderChildCancelRecord(OrderChildCancelRecordParam param);
}
......@@ -23,6 +23,7 @@ import com.clx.performance.extranal.user.DriverService;
import com.clx.performance.extranal.user.OwnerInfoService;
import com.clx.performance.model.OrderChild;
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.OrderChildCancelRecordParam;
import com.clx.performance.service.*;
......@@ -616,8 +617,10 @@ public class OrderCancelServiceImpl implements OrderCancelService {
}
@Override
public OrderChildVO findArtificialCancelOrder(String orderChildNo) {
OrderChildVO artificialCancelOrder = orderChildDao.findArtificialCancelOrder(orderChildNo);
public OrderChildVO findArtificialCancelOrder(ArtificialCancelOrderQueryParam param) {
//检查参数
param.checkParam();
OrderChildVO artificialCancelOrder = orderChildDao.findArtificialCancelOrder(param);
if (artificialCancelOrder == null) {
return null;
}
......
......@@ -6,10 +6,7 @@ import com.clx.performance.enums.OrderChildEnum;
import com.clx.performance.model.OrderChild;
import com.clx.performance.param.app.PageOrderChildOfDriverParam;
import com.clx.performance.param.app.PageOrderChildOfDriverSearchParam;
import com.clx.performance.param.pc.OrderChildCancelRecordParam;
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.param.pc.*;
import com.clx.performance.vo.app.OrderChildVO;
import com.clx.performance.vo.pc.PageCarrierOrderChildVO;
import com.clx.performance.vo.pc.PageOrderChildPoundAuditVO;
......@@ -19,6 +16,8 @@ import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.jdbc.SQL;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.StringJoiner;
......@@ -182,21 +181,39 @@ public class OrderChildSqlProvider {
return sql;
}
public String findArtificialCancelOrder(@Param("orderChildNo") String orderChildNo) {
String sql = "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 child_no = #{orderChildNo}";
sql += " and status >="+ OrderChildEnum.Status.LOAD.getCode();
sql += " and status <"+ OrderChildEnum.Status.UNSETTLE.getCode();
return sql;
public String findArtificialCancelOrder(@Param("param") ArtificialCancelOrderQueryParam param) {
StringBuilder sql = new StringBuilder();
sql.append("SELECT child_no, goods_name, freight_price, order_no, ");
sql.append("send_address, receive_address, ");
sql.append("driver_user_no, driver_name, driver_mobile, ");
sql.append("truck_no, unload_pound_no, weight, ");
sql.append("cancel_remark, pound_status, status, ");
sql.append("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, ");
sql.append("DATE_FORMAT(unload_time, '%Y-%m-%d %H:%i:%s') AS unloadTime ");
sql.append("FROM order_child ");
sql.append("WHERE 1=1 ");
List<String> conditions = new ArrayList<>();
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) {
......
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 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论