修改搜索功能
This commit is contained in:
@@ -18,10 +18,14 @@ public class PrcOrderBill extends BaseEntity
|
||||
private String billId;
|
||||
private String billKey;
|
||||
private String orderNo;
|
||||
/** 批量查询:多个订单号精确匹配(仅查询用,非表字段) */
|
||||
private List<String> orderNos;
|
||||
private String trackingNo;
|
||||
private Long customerId;
|
||||
private String customerCode;
|
||||
private String customerName;
|
||||
/** 批量查询:多个客户代码精确匹配(仅查询用,非表字段) */
|
||||
private List<String> customerCodes;
|
||||
private Integer pieces;
|
||||
private BigDecimal actualWeight;
|
||||
private BigDecimal volume;
|
||||
@@ -38,6 +42,8 @@ public class PrcOrderBill extends BaseEntity
|
||||
private String orderRemark;
|
||||
private String productCode;
|
||||
private String productName;
|
||||
/** 批量查询:多个产品代码精确匹配(仅查询用,非表字段) */
|
||||
private List<String> productCodes;
|
||||
private String countryCode;
|
||||
private String countryName;
|
||||
private BigDecimal weight;
|
||||
|
||||
@@ -15,6 +15,9 @@ public interface PrcOrderBillMapper
|
||||
|
||||
public List<PrcOrderBill> selectPrcOrderBillList(PrcOrderBill bill);
|
||||
|
||||
/** 订单号下拉搜索:按关键词模糊匹配,返回去重后的订单号(按最近创建排序,限量返回) */
|
||||
public List<String> selectOrderNoOptions(@Param("keyword") String keyword, @Param("limit") int limit);
|
||||
|
||||
/** 应收账单生成读取指定客户截止日期前的未出账订单计费快照。 */
|
||||
public List<PrcOrderBill> selectPrcOrderBillByCustomerPeriod(@Param("customerId") Long customerId,
|
||||
@Param("customerCode") String customerCode, @Param("cutoffDate") Date cutoffDate,
|
||||
|
||||
@@ -12,6 +12,9 @@ public interface IPrcOrderBillService
|
||||
|
||||
List<PrcOrderBill> selectBillList(PrcOrderBill query);
|
||||
|
||||
/** 订单号下拉搜索选项(模糊匹配,去重限量) */
|
||||
List<String> listOrderNoOptions(String keyword);
|
||||
|
||||
TmsPriceQuoteResult getBill(String billId);
|
||||
|
||||
TmsPriceQuoteResult getBillByOrderNo(String orderNo);
|
||||
|
||||
+35
@@ -4,9 +4,12 @@ import java.math.BigDecimal;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
import java.util.stream.Collectors;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
@@ -88,9 +91,41 @@ public class PrcOrderBillServiceImpl implements IPrcOrderBillService
|
||||
@Override
|
||||
public List<PrcOrderBill> selectBillList(PrcOrderBill query)
|
||||
{
|
||||
query.setOrderNos(normalizeCodeList(query.getOrderNos()));
|
||||
query.setCustomerCodes(normalizeCodeList(query.getCustomerCodes()));
|
||||
query.setProductCodes(normalizeCodeList(query.getProductCodes()));
|
||||
return orderBillMapper.selectPrcOrderBillList(query);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> listOrderNoOptions(String keyword)
|
||||
{
|
||||
if (StringUtils.isBlank(keyword))
|
||||
{
|
||||
return new ArrayList<>();
|
||||
}
|
||||
return orderBillMapper.selectOrderNoOptions(keyword.trim(), 20);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量编码归一化:逐个 trim、拆开误传的逗号/分号/空白分隔串、去空去重
|
||||
*/
|
||||
private List<String> normalizeCodeList(List<String> codes)
|
||||
{
|
||||
if (codes == null || codes.isEmpty())
|
||||
{
|
||||
return null;
|
||||
}
|
||||
List<String> cleaned = codes.stream()
|
||||
.filter(StringUtils::isNotBlank)
|
||||
.map(s -> s.split("[,,;;\\s]+"))
|
||||
.flatMap(Arrays::stream)
|
||||
.map(String::trim)
|
||||
.filter(StringUtils::isNotBlank)
|
||||
.collect(Collectors.collectingAndThen(Collectors.toList(), list -> new ArrayList<>(new LinkedHashSet<>(list))));
|
||||
return cleaned.isEmpty() ? null : cleaned;
|
||||
}
|
||||
|
||||
@Override
|
||||
public TmsPriceQuoteResult getBill(String billId)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user