Browse Source

fix(all): 优化配送明细报表

1 优化配送明细报表查询慢的问题
pull/5/head
zhaoqiaobo 11 months ago
parent
commit
9417019a1e
  1. 9
      blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportDeliverMapeer.java
  2. 36
      blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportDeliverMapper.xml
  3. 25
      blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/ReportDeliverServiceImpl.java

9
blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportDeliverMapeer.java

@ -1,6 +1,7 @@
package com.logpm.report.mapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.logpm.report.vo.ReportCustomerVO;
@ -55,4 +56,12 @@ public interface ReportDeliverMapeer extends BaseMapper {
*/
List<StockOrderVO> getStockOrderPage(IPage<StockOrderVO> page, @Param("ew") Wrapper<StockOrderVO> queryWrapper);
/**
* 查询零担明细
* @param page
* @param queryWrapper
* @return
*/
List<ReportDetailVO> getDetailsZeroPage(IPage<ReportDetailVO> page,@Param("ew") QueryWrapper<ReportDetailVO> queryWrapper);
Long getDetailsZeroPageCount(@Param("ew") QueryWrapper<ReportDetailVO> queryWrapper);
}

36
blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportDeliverMapper.xml

@ -359,16 +359,17 @@
ldla.auditing_time auditing_time
FROM logpm_distribution_reservation_package drp
LEFT JOIN logpm_distribution_parcel_list dpl
ON dpl.order_package_code = drp.packet_bar_code AND dpl.is_deleted = 0
ON dpl.id = drp.parce_list_id
left join logpm_distribution_reservation obj on drp.reservation_id = obj.id
LEFT JOIN logpm_distribution_signfor lds ON lds.reservation_id = drp.reservation_id
LEFT JOIN logpm_distribution_signfor lds ON lds.reservation_id = obj.id
LEFT JOIN logpm_distribution_delivery_list lddl ON lds.delivery_id = lddl.id
LEFT JOIN logpm_warehouse_waybill wi ON wi.id = obj.waybill_id
LEFT JOIN logpm_warehouse_waybill wi ON wi.id = dpl.waybill_id
LEFT JOIN logpm_distribution_loadscan ldl
ON ldl.order_package_code = dpl.order_package_code
ON ldl.package_id = dpl.id
AND ldl.type = 2
LEFT JOIN logpm_distribution_loadscan_abnormal ldla
ON ldla.package_code = dpl.order_package_code
ON ldla.package_id = dpl.id
where drp.packet_bar_status != 2
) t
${ew.customSqlSegment}
<if test="ew!=null and ew.customSqlSegment !=null and ew.customSqlSegment!=''">
@ -381,10 +382,9 @@
SELECT obj.id
FROM logpm_distribution_reservation obj
WHERE obj.id = t.id)
union all
order by t.id desc
</select>
<sql id="detailsZeroPage">
select
id,
train_number,
@ -514,14 +514,15 @@
LEFT JOIN logpm_distribution_parcel_list dpl
ON dpl.id = drp.parcel_list_id
left join logpm_distribution_reservation obj on drp.reservation_id = obj.id
LEFT JOIN logpm_distribution_signfor lds ON lds.reservation_id = drp.reservation_id
LEFT JOIN logpm_distribution_signfor lds ON lds.reservation_id = obj.id
LEFT JOIN logpm_distribution_delivery_list lddl ON lds.delivery_id = lddl.id
LEFT JOIN logpm_warehouse_waybill wi ON wi.id = obj.waybill_id
LEFT JOIN logpm_warehouse_waybill wi ON wi.id = dpl.waybill_id
LEFT JOIN logpm_distribution_loadscan ldl
ON ldl.order_package_code = dpl.order_package_code
ON ldl.package_id = dpl.id
AND ldl.type = 2
LEFT JOIN logpm_distribution_loadscan_abnormal ldla
ON ldla.package_code = dpl.order_package_code
ON ldla.package_id = dpl.id
where drp.zero_package_status != 2
) t
${ew.customSqlSegment}
<if test="ew!=null and ew.customSqlSegment !=null and ew.customSqlSegment!=''">
@ -534,6 +535,10 @@
SELECT obj.id
FROM logpm_distribution_reservation obj
WHERE obj.id = t.id)
order by t.id desc
</sql>
<select id="getDetailsZeroPage" resultType="com.logpm.report.vo.ReportDetailVO">
<include refid="detailsZeroPage"></include>
</select>
<select id="getStockOrderPage" resultType="com.logpm.report.vo.StockOrderVO">
select waybill_number,
@ -611,5 +616,10 @@
${ew.customSqlSegment}
group by ldsa.id) t
</select>
<select id="getDetailsZeroPageCount" resultType="java.lang.Long">
select count(*) from (
<include refid="detailsZeroPage"></include>
) t
</select>
</mapper>

25
blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/ReportDeliverServiceImpl.java

@ -1,5 +1,6 @@
package com.logpm.report.service.impl;
import cn.hutool.core.util.NumberUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.logpm.report.mapper.ReportDeliverMapeer;
@ -23,6 +24,7 @@ import org.springblade.core.mp.support.Condition;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
* @author zhaoqiaobo
@ -109,10 +111,31 @@ public class ReportDeliverServiceImpl implements ReportDeliverService {
@Override
public IPage<ReportDetailVO> detailsPage(ReportDetailVO vo, DevilerDetailsQuery query) {
Integer current = query.getCurrent();
Integer size = query.getSize();
IPage<ReportDetailVO> page = Condition.getPage(query);
QueryWrapper<ReportDetailVO> queryWrapper = QueryUtil.buildQueryWrapper(vo, ReportDetailVO.class);
detailsCustomQuery(query, queryWrapper);
return page.setRecords(reportDeliverMapeer.getDetailsPage(page, queryWrapper));
List<ReportDetailVO> detailsPage = reportDeliverMapeer.getDetailsPage(page, queryWrapper);
// 包件总数
long total = page.getTotal();
// 零件总数
Long detailsZeroPageCount = reportDeliverMapeer.getDetailsZeroPageCount(queryWrapper);
long allTotal = total + detailsZeroPageCount;
// 包件没数据查零担
if (detailsPage.size() < size) {
int zeroSize = size - detailsPage.size();
double div = NumberUtil.div(allTotal, size.doubleValue());
long zeroCurrent = current - (int) Math.ceil(div) + 1;
page.setCurrent(zeroCurrent);
page.setSize(zeroSize);
List<ReportDetailVO> zeroPage = reportDeliverMapeer.getDetailsZeroPage(page, queryWrapper);
page.setCurrent(current);
page.setSize(size);
detailsPage.addAll(zeroPage);
}
page.setTotal(allTotal);
return page.setRecords(detailsPage);
}
private void detailsCustomQuery(DevilerDetailsQuery query, QueryWrapper<ReportDetailVO> queryWrapper) {

Loading…
Cancel
Save