增加运单和转运单批量查询

This commit is contained in:
wuweihua
2026-09-21 16:08:53 +08:00
parent 83f19e1dca
commit c73effc2f7
9 changed files with 163 additions and 3 deletions
@@ -21,8 +21,12 @@ public class PrcOrderBill extends BaseEntity
/** 批量查询:多个订单号精确匹配(仅查询用,非表字段) */
private List<String> orderNos;
private String trackingNo;
/** 批量查询:多个运单号精确匹配(仅查询用,非表字段) */
private List<String> trackingNos;
/** transfer order no */
private String transferNo;
/** 批量查询:多个转单号精确匹配(仅查询用,非表字段) */
private List<String> transferNos;
/** 所属销售员 */
private String belongSaler;
/** 结算员 */
@@ -20,6 +20,12 @@ public interface PrcOrderBillMapper
/** 订单号下拉搜索:按关键词模糊匹配,返回去重后的订单号(按最近创建排序,限量返回) */
public List<String> selectOrderNoOptions(@Param("keyword") String keyword, @Param("limit") int limit);
/** 运单号下拉搜索:按关键词模糊匹配,返回去重后的运单号(按最近创建排序,限量返回) */
public List<String> selectTrackingNoOptions(@Param("keyword") String keyword, @Param("limit") int limit);
/** 转单号下拉搜索:按关键词模糊匹配,返回去重后的转单号(按最近创建排序,限量返回) */
public List<String> selectTransferNoOptions(@Param("keyword") String keyword, @Param("limit") int limit);
/** 应收账单生成读取指定客户截止日期前的未出账订单计费快照。 */
public List<PrcOrderBill> selectPrcOrderBillByCustomerPeriod(@Param("customerId") Long customerId,
@Param("customerCode") String customerCode, @Param("orderOrTrackingNo") String orderOrTrackingNo,
@@ -15,6 +15,12 @@ public interface IPrcOrderBillService
/** 订单号下拉搜索选项(模糊匹配,去重限量) */
List<String> listOrderNoOptions(String keyword);
/** 运单号下拉搜索选项(模糊匹配,去重限量) */
List<String> listTrackingNoOptions(String keyword);
/** 转单号下拉搜索选项(模糊匹配,去重限量) */
List<String> listTransferNoOptions(String keyword);
TmsPriceQuoteResult getBill(String billId);
TmsPriceQuoteResult getBillByOrderNo(String orderNo);
@@ -103,6 +103,8 @@ public class PrcOrderBillServiceImpl implements IPrcOrderBillService
query.setOrderNos(normalizeCodeList(query.getOrderNos()));
query.setCustomerCodes(normalizeCodeList(query.getCustomerCodes()));
query.setProductCodes(normalizeCodeList(query.getProductCodes()));
query.setTrackingNos(normalizeCodeList(query.getTrackingNos()));
query.setTransferNos(normalizeCodeList(query.getTransferNos()));
return orderBillMapper.selectPrcOrderBillList(query);
}
@@ -116,6 +118,26 @@ public class PrcOrderBillServiceImpl implements IPrcOrderBillService
return orderBillMapper.selectOrderNoOptions(keyword.trim(), 20);
}
@Override
public List<String> listTrackingNoOptions(String keyword)
{
if (StringUtils.isBlank(keyword))
{
return new ArrayList<>();
}
return orderBillMapper.selectTrackingNoOptions(keyword.trim(), 20);
}
@Override
public List<String> listTransferNoOptions(String keyword)
{
if (StringUtils.isBlank(keyword))
{
return new ArrayList<>();
}
return orderBillMapper.selectTransferNoOptions(keyword.trim(), 20);
}
/**
* 批量编码归一化:逐个 trim、拆开误传的逗号/分号/空白分隔串、去空去重
*/
@@ -117,6 +117,32 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
limit #{limit}
</select>
<select id="selectTrackingNoOptions" resultType="String">
select tracking_no
from prc_order_bill
<where>
<if test="keyword != null and keyword != ''">
tracking_no like concat('%', #{keyword}, '%')
</if>
</where>
group by tracking_no
order by max(create_time) desc
limit #{limit}
</select>
<select id="selectTransferNoOptions" resultType="String">
select transfer_no
from prc_order_bill
<where>
<if test="keyword != null and keyword != ''">
transfer_no like concat('%', #{keyword}, '%')
</if>
</where>
group by transfer_no
order by max(create_time) desc
limit #{limit}
</select>
<select id="selectPrcOrderBillList" parameterType="PrcOrderBill" resultMap="PrcOrderBillResult">
<include refid="selectPrcOrderBillVo"/>
<where>
@@ -132,9 +158,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="trackingNo != null and trackingNo != ''">
AND tracking_no like concat('%', #{trackingNo}, '%')
</if>
<if test="trackingNos != null and trackingNos.size() > 0">
AND tracking_no IN
<foreach collection="trackingNos" item="tno" open="(" separator="," close=")">
#{tno}
</foreach>
</if>
<if test="transferNo != null and transferNo != ''">
AND transfer_no like concat('%', #{transferNo}, '%')
</if>
<if test="transferNos != null and transferNos.size() > 0">
AND transfer_no IN
<foreach collection="transferNos" item="rno" open="(" separator="," close=")">
#{rno}
</foreach>
</if>
<if test="customerActiveStatus != null and customerActiveStatus != ''">
AND customer_active_status = #{customerActiveStatus}
</if>