10 changed files with 773 additions and 0 deletions
@ -0,0 +1,77 @@ |
|||||||
|
/* |
||||||
|
* Copyright (c) 2018-2028, Chill Zhuang All rights reserved. |
||||||
|
* |
||||||
|
* Redistribution and use in source and binary forms, with or without |
||||||
|
* modification, are permitted provided that the following conditions are met: |
||||||
|
* |
||||||
|
* Redistributions of source code must retain the above copyright notice, |
||||||
|
* this list of conditions and the following disclaimer. |
||||||
|
* Redistributions in binary form must reproduce the above copyright |
||||||
|
* notice, this list of conditions and the following disclaimer in the |
||||||
|
* documentation and/or other materials provided with the distribution. |
||||||
|
* Neither the name of the dreamlu.net developer nor the names of its |
||||||
|
* contributors may be used to endorse or promote products derived from |
||||||
|
* this software without specific prior written permission. |
||||||
|
* Author: Chill 庄骞 (smallchill@163.com) |
||||||
|
*/ |
||||||
|
package com.logpm.report.controller; |
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
||||||
|
import com.logpm.report.query.DevilerDetailsQuery; |
||||||
|
import com.logpm.report.query.QualityDispatchNumberQuery; |
||||||
|
import com.logpm.report.query.QualityDispatchTaskQuery; |
||||||
|
import com.logpm.report.service.QualityDispatchNumberService; |
||||||
|
import com.logpm.report.vo.ReportDetailVO; |
||||||
|
import com.logpm.report.vo.qulity.dispatch.QualityDispatchNumberVO; |
||||||
|
import com.logpm.report.vo.qulity.dispatch.QualityDispatchTaskVO; |
||||||
|
import io.swagger.annotations.Api; |
||||||
|
import io.swagger.annotations.ApiOperation; |
||||||
|
import lombok.AllArgsConstructor; |
||||||
|
import org.springblade.core.boot.ctrl.BladeController; |
||||||
|
import org.springblade.core.tool.api.R; |
||||||
|
import org.springframework.web.bind.annotation.GetMapping; |
||||||
|
import org.springframework.web.bind.annotation.RequestMapping; |
||||||
|
import org.springframework.web.bind.annotation.RestController; |
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletResponse; |
||||||
|
|
||||||
|
/** |
||||||
|
* 配送质量报表 控制器 |
||||||
|
* |
||||||
|
* @author cyz |
||||||
|
* @since 2023-06-08 |
||||||
|
*/ |
||||||
|
@RestController |
||||||
|
@AllArgsConstructor |
||||||
|
@RequestMapping("/qualityDispatch") |
||||||
|
@Api(value = "配送质量报表", tags = "配送质量报表") |
||||||
|
public class QualityDispatchNumberController extends BladeController { |
||||||
|
|
||||||
|
private final QualityDispatchNumberService numberService; |
||||||
|
|
||||||
|
@GetMapping("/number") |
||||||
|
@ApiOperation(value = "配送统计汇总", notes = "配送统计汇总") |
||||||
|
public R<IPage<QualityDispatchNumberVO>> number(QualityDispatchNumberQuery query) { |
||||||
|
IPage<QualityDispatchNumberVO> pages = numberService.number(query); |
||||||
|
return R.data(pages); |
||||||
|
} |
||||||
|
|
||||||
|
@GetMapping("/exporNumber") |
||||||
|
@ApiOperation(value = "导出配送统计汇总", notes = "导出配送统计汇总") |
||||||
|
public void exporNumber(HttpServletResponse response, QualityDispatchNumberQuery query) { |
||||||
|
numberService.exporNumber(response, query); |
||||||
|
} |
||||||
|
@GetMapping("/task") |
||||||
|
@ApiOperation(value = "配送统计汇总-任务明细", notes = "配送统计汇总-任务明细") |
||||||
|
public R<IPage<QualityDispatchTaskVO>> task(QualityDispatchTaskQuery query) { |
||||||
|
IPage<QualityDispatchTaskVO> pages = numberService.task(query); |
||||||
|
return R.data(pages); |
||||||
|
} |
||||||
|
|
||||||
|
@GetMapping("/exporTask") |
||||||
|
@ApiOperation(value = "配送统计汇总-任务明细", notes = "配送统计汇总-任务明细") |
||||||
|
public void exporTask(HttpServletResponse response, QualityDispatchTaskQuery query) { |
||||||
|
numberService.exporTask(response, query); |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,21 @@ |
|||||||
|
package com.logpm.report.mapper; |
||||||
|
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
||||||
|
import com.logpm.report.query.QualityDispatchNumberQuery; |
||||||
|
import com.logpm.report.query.QualityDispatchTaskQuery; |
||||||
|
import com.logpm.report.vo.qulity.dispatch.QualityDispatchNumberVO; |
||||||
|
import com.logpm.report.vo.qulity.dispatch.QualityDispatchTaskVO; |
||||||
|
import org.apache.ibatis.annotations.Mapper; |
||||||
|
import org.apache.ibatis.annotations.Param; |
||||||
|
|
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
@Mapper |
||||||
|
public interface QualityDispatchNumberMapper { |
||||||
|
|
||||||
|
|
||||||
|
List<QualityDispatchNumberVO> number(@Param("page") IPage<QualityDispatchNumberVO> page, @Param("query") QualityDispatchNumberQuery query); |
||||||
|
|
||||||
|
List<QualityDispatchTaskVO> task(@Param("page") IPage<QualityDispatchTaskVO> page, @Param("query") QualityDispatchTaskQuery query); |
||||||
|
} |
@ -0,0 +1,185 @@ |
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?> |
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > |
||||||
|
<mapper namespace="com.logpm.report.mapper.QualityDispatchNumberMapper"> |
||||||
|
|
||||||
|
<select id="number" resultType="com.logpm.report.vo.qulity.dispatch.QualityDispatchNumberVO"> |
||||||
|
select t.warehouse_name, |
||||||
|
<if test="query.deliveryType != null and query.deliveryType != ''"> |
||||||
|
t.delivery_type, |
||||||
|
</if> |
||||||
|
sum(ifnull(t.plan_num, 0)) plan_num, |
||||||
|
sum(ifnull(t.stock_num, 0)) stock_num, |
||||||
|
sum(ifnull(t.load_num, 0)) load_num, |
||||||
|
sum(ifnull(t.sign_num, 0)) sign_num, |
||||||
|
concat(replace(case |
||||||
|
when sum(ifnull(t.plan_num, 0)) = 0 then 0 |
||||||
|
else ROUND((sum(ifnull(t.sign_num, 0)) / sum(ifnull(t.plan_num, 0))) * 100, 2) end, '.00', |
||||||
|
''), '%') signRate, |
||||||
|
ifnull(sum(case when t.conditions = 3 then ifnull(t.plan_num, 0) end), 0) planStockNum, |
||||||
|
ifnull(sum(case when t.conditions = 3 then ifnull(t.load_num, 0) end), 0) loadStockNum, |
||||||
|
ifnull(sum(case when t.conditions = 3 then ifnull(t.sign_num, 0) end), 0) signStockNum, |
||||||
|
concat(replace(case |
||||||
|
when ifnull(sum(case when t.conditions = 3 then ifnull(t.sign_num, 0) end), 0) = 0 then 0 |
||||||
|
else |
||||||
|
ROUND((ifnull(sum(case when t.conditions = 3 then ifnull(t.sign_num, 0) end), 0) |
||||||
|
/ ifnull(sum(case when t.conditions = 3 then ifnull(t.sign_num, 0) end), 0)) * 100, |
||||||
|
2) end, '.00', ''), '%') signRate, |
||||||
|
count(distinct t.plan_reservation_code) customerCount, |
||||||
|
count(distinct case when t.review_num != 0 then t.plan_reservation_code else null end) customerCount, |
||||||
|
concat(replace(case |
||||||
|
when count(distinct case when t.review_num != 0 then t.plan_reservation_code else null end) = |
||||||
|
0 then 0 |
||||||
|
else ROUND((count(distinct t.plan_reservation_code) / count(distinct case |
||||||
|
when t.review_num != 0 |
||||||
|
then t.plan_reservation_code |
||||||
|
else null end)) * |
||||||
|
100, 2) end, '.00', |
||||||
|
''), '%') reviewRate |
||||||
|
from (select t.business_unit, |
||||||
|
t.warehouse_name, |
||||||
|
t.brand_name, |
||||||
|
t.delivery_time, |
||||||
|
t.delivery_type, |
||||||
|
t.conditions, |
||||||
|
t.plan_reservation_code, |
||||||
|
t.plan_train_number, |
||||||
|
sum(ifnull(t.plan_num, 0)) plan_num, |
||||||
|
sum(ifnull(t.stock_num, 0)) stock_num, |
||||||
|
sum(ifnull(t.load_num, 0)) load_num, |
||||||
|
sum(ifnull(t.sign_num, 0)) sign_num, |
||||||
|
sum(ifnull(t.review_num, 0)) review_num, |
||||||
|
sum(ifnull(t.retention_num, 0)) retention_num |
||||||
|
from logpm_quality_deliver t |
||||||
|
where t.plan_train_number is not null |
||||||
|
<if test="query.startTaskTime != null and query.startTaskTime != ''"> |
||||||
|
and t.delivery_time >= #{query.startTaskTime} |
||||||
|
</if> |
||||||
|
<if test="query.endTaskTime != null and query.endTaskTime != ''"> |
||||||
|
and t.delivery_time <= #{query.endTaskTime} |
||||||
|
</if> |
||||||
|
<if test="query.warehouseName != null and query.warehouseName != ''"> |
||||||
|
and t.warehouse_name in |
||||||
|
<foreach collection="query.warehouseName.split(',')" item="item" separator="," open="(" close=")"> |
||||||
|
#{item} |
||||||
|
</foreach> |
||||||
|
</if> |
||||||
|
<if test="query.deliveryType != null and query.deliveryType != ''"> |
||||||
|
and t.delivery_type in |
||||||
|
<foreach collection="query.deliveryType.split(',')" item="item" separator="," open="(" close=")"> |
||||||
|
#{item} |
||||||
|
</foreach> |
||||||
|
</if> |
||||||
|
group by t.plan_reservation_code, |
||||||
|
t.plan_train_number, |
||||||
|
t.delivery_time, |
||||||
|
t.delivery_type, |
||||||
|
t.conditions, |
||||||
|
t.brand_name, |
||||||
|
t.warehouse_name, |
||||||
|
t.business_unit) t |
||||||
|
group by t.warehouse_name |
||||||
|
<if test="query.deliveryType != null and query.deliveryType != ''"> |
||||||
|
,t.delivery_type |
||||||
|
</if> |
||||||
|
</select> |
||||||
|
|
||||||
|
<select id="task" resultType="com.logpm.report.vo.qulity.dispatch.QualityDispatchTaskVO"> |
||||||
|
select t.business_unit, |
||||||
|
t.warehouse_name, |
||||||
|
t.delivery_type, |
||||||
|
t.delivery_time, |
||||||
|
t.plan_reservation_code, |
||||||
|
t.plan_train_number, |
||||||
|
t.mall_name, |
||||||
|
t.reservation_consignee, |
||||||
|
t.driver_name, |
||||||
|
t.vehicle_name, |
||||||
|
t.delivery_create_user_name, |
||||||
|
case when t.sign_status = 1 then '已签收' else '未签收' end signStatus, |
||||||
|
t.sign_time, |
||||||
|
t.sign_user_name, |
||||||
|
t.reviewStatus, |
||||||
|
t.review_user_name, |
||||||
|
t.review_time, |
||||||
|
t.start_car_time, |
||||||
|
t.arrive_car_time, |
||||||
|
sum(ifnull(t.plan_num, 0)) plan_num, |
||||||
|
sum(ifnull(t.stock_num, 0)) stock_num, |
||||||
|
sum(ifnull(t.load_num, 0)) load_num, |
||||||
|
sum(ifnull(t.sign_num, 0)) sign_num, |
||||||
|
concat(replace(case |
||||||
|
when sum(ifnull(t.plan_num, 0)) = 0 then 0 |
||||||
|
else ROUND((sum(ifnull(t.sign_num, 0)) / sum(ifnull(t.plan_num, 0))) * 100, 2) end, '.00', |
||||||
|
''), '%') signRate, |
||||||
|
ifnull(sum(case when t.conditions = 3 then ifnull(t.plan_num, 0) end), 0) planStockNum, |
||||||
|
ifnull(sum(case when t.conditions = 3 then ifnull(t.load_num, 0) end), 0) loadStockNum, |
||||||
|
ifnull(sum(case when t.conditions = 3 then ifnull(t.sign_num, 0) end), 0) signStockNum, |
||||||
|
concat(replace(case |
||||||
|
when ifnull(sum(case when t.conditions = 3 then ifnull(t.sign_num, 0) end), 0) = 0 then 0 |
||||||
|
else |
||||||
|
ROUND((ifnull(sum(case when t.conditions = 3 then ifnull(t.sign_num, 0) end), 0) |
||||||
|
/ ifnull(sum(case when t.conditions = 3 then ifnull(t.sign_num, 0) end), 0)) * 100, |
||||||
|
2) end, '.00', ''), '%') signRate, |
||||||
|
count(distinct t.plan_reservation_code) customerCount, |
||||||
|
count(distinct case when t.review_num != 0 then t.plan_reservation_code else null end) customerCount, |
||||||
|
concat(replace(case |
||||||
|
when count(distinct case when t.review_num != 0 then t.plan_reservation_code else null end) = |
||||||
|
0 then 0 |
||||||
|
else ROUND((count(distinct t.plan_reservation_code) / count(distinct case |
||||||
|
when t.review_num != 0 |
||||||
|
then t.plan_reservation_code |
||||||
|
else null end)) * |
||||||
|
100, 2) end, '.00', |
||||||
|
''), '%') reviewRate |
||||||
|
from ( |
||||||
|
select t.business_unit, |
||||||
|
t.warehouse_name, |
||||||
|
t.delivery_time, |
||||||
|
t.delivery_type, |
||||||
|
t.conditions, |
||||||
|
t.plan_reservation_code, |
||||||
|
t.plan_train_number, |
||||||
|
t.mall_name, |
||||||
|
t.reservation_consignee, |
||||||
|
t.driver_name, |
||||||
|
t.vehicle_name, |
||||||
|
t.delivery_create_user_name, |
||||||
|
t.sign_status, |
||||||
|
t.sign_time, |
||||||
|
t.sign_user_name, |
||||||
|
case when t.review_user_name is null then '未复核' else '已复核' end reviewStatus, |
||||||
|
t.review_user_name, |
||||||
|
t.review_time, |
||||||
|
t.start_car_time, |
||||||
|
t.arrive_car_time, |
||||||
|
sum(ifnull(t.plan_num, 0)) plan_num, |
||||||
|
sum(ifnull(t.stock_num, 0)) stock_num, |
||||||
|
sum(ifnull(t.load_num, 0)) load_num, |
||||||
|
sum(ifnull(t.sign_num, 0)) sign_num, |
||||||
|
sum(ifnull(t.review_num, 0)) review_num, |
||||||
|
sum(ifnull(t.retention_num, 0)) retention_num |
||||||
|
from logpm_quality_deliver t |
||||||
|
where t.plan_train_number is not null |
||||||
|
<if test="query.startTaskTime != null and query.startTaskTime != ''"> |
||||||
|
and t.delivery_time >= #{query.startTaskTime} |
||||||
|
</if> |
||||||
|
<if test="query.endTaskTime != null and query.endTaskTime != ''"> |
||||||
|
and t.delivery_time <= #{query.endTaskTime} |
||||||
|
</if> |
||||||
|
<if test="query.warehouseName != null and query.warehouseName != ''"> |
||||||
|
and t.warehouse_name in |
||||||
|
<foreach collection="query.warehouseName.split(',')" item="item" separator="," open="(" close=")"> |
||||||
|
#{item} |
||||||
|
</foreach> |
||||||
|
</if> |
||||||
|
<if test="query.deliveryType != null and query.deliveryType != ''"> |
||||||
|
and t.delivery_type in |
||||||
|
<foreach collection="query.deliveryType.split(',')" item="item" separator="," open="(" close=")"> |
||||||
|
#{item} |
||||||
|
</foreach> |
||||||
|
</if> |
||||||
|
group by t.plan_reservation_code,t.conditions |
||||||
|
) t |
||||||
|
group by t.plan_reservation_code |
||||||
|
</select> |
||||||
|
</mapper> |
@ -0,0 +1,30 @@ |
|||||||
|
package com.logpm.report.query; |
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModel; |
||||||
|
import io.swagger.annotations.ApiModelProperty; |
||||||
|
import lombok.Data; |
||||||
|
import org.springblade.core.mp.support.Query; |
||||||
|
|
||||||
|
/** |
||||||
|
* 配送质量报表查询对象 query |
||||||
|
* |
||||||
|
* @author zhaoqiaobo |
||||||
|
* @create 2024-03-13 14:21 |
||||||
|
*/ |
||||||
|
@ApiModel(value = "配送质量报表查询对象", description = "配送质量报表查询对象") |
||||||
|
@Data |
||||||
|
public class QualityDispatchNumberQuery extends Query { |
||||||
|
|
||||||
|
@ApiModelProperty(value = "配送日期开始(yyyy-MM-dd)", position = 1) |
||||||
|
private String startTaskTime; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "配送日期结束(yyyy-MM-dd)", position = 2) |
||||||
|
private String endTaskTime; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "仓库", position = 3) |
||||||
|
private String warehouseName; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "配送类型", position = 4) |
||||||
|
private String deliveryType; |
||||||
|
|
||||||
|
} |
@ -0,0 +1,30 @@ |
|||||||
|
package com.logpm.report.query; |
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModel; |
||||||
|
import io.swagger.annotations.ApiModelProperty; |
||||||
|
import lombok.Data; |
||||||
|
import org.springblade.core.mp.support.Query; |
||||||
|
|
||||||
|
/** |
||||||
|
* 配送质量报表查询对象 query |
||||||
|
* |
||||||
|
* @author zhaoqiaobo |
||||||
|
* @create 2024-03-13 14:21 |
||||||
|
*/ |
||||||
|
@ApiModel(value = "配送质量报表查询对象", description = "配送质量报表查询对象") |
||||||
|
@Data |
||||||
|
public class QualityDispatchTaskQuery extends Query { |
||||||
|
|
||||||
|
@ApiModelProperty(value = "配送日期开始(yyyy-MM-dd)", position = 1) |
||||||
|
private String startTaskTime; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "配送日期结束(yyyy-MM-dd)", position = 2) |
||||||
|
private String endTaskTime; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "仓库", position = 3) |
||||||
|
private String warehouseName; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "配送类型", position = 4) |
||||||
|
private String deliveryType; |
||||||
|
|
||||||
|
} |
@ -0,0 +1,24 @@ |
|||||||
|
package com.logpm.report.service; |
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
||||||
|
import com.logpm.report.query.QualityDispatchNumberQuery; |
||||||
|
import com.logpm.report.query.QualityDispatchTaskQuery; |
||||||
|
import com.logpm.report.vo.qulity.dispatch.QualityDispatchNumberVO; |
||||||
|
import com.logpm.report.vo.qulity.dispatch.QualityDispatchTaskVO; |
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletResponse; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author zhaoqiaobo |
||||||
|
* @create 2024-03-06 15:51 |
||||||
|
*/ |
||||||
|
public interface QualityDispatchNumberService { |
||||||
|
|
||||||
|
IPage<QualityDispatchNumberVO> number(QualityDispatchNumberQuery query); |
||||||
|
|
||||||
|
void exporNumber(HttpServletResponse response, QualityDispatchNumberQuery query); |
||||||
|
|
||||||
|
IPage<QualityDispatchTaskVO> task(QualityDispatchTaskQuery query); |
||||||
|
|
||||||
|
void exporTask(HttpServletResponse response, QualityDispatchTaskQuery query); |
||||||
|
} |
@ -0,0 +1,109 @@ |
|||||||
|
package com.logpm.report.service.impl; |
||||||
|
|
||||||
|
import cn.hutool.core.util.ObjectUtil; |
||||||
|
import cn.hutool.core.util.StrUtil; |
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
||||||
|
import com.logpm.basicdata.entity.BasicdataWarehouseEntity; |
||||||
|
import com.logpm.basicdata.feign.IBasicdataWarehouseClient; |
||||||
|
import com.logpm.report.mapper.QualityDispatchNumberMapper; |
||||||
|
import com.logpm.report.query.QualityDispatchNumberQuery; |
||||||
|
import com.logpm.report.query.QualityDispatchTaskQuery; |
||||||
|
import com.logpm.report.service.QualityDispatchNumberService; |
||||||
|
import com.logpm.report.vo.qulity.dispatch.QualityDispatchNumberVO; |
||||||
|
import com.logpm.report.vo.qulity.dispatch.QualityDispatchTaskVO; |
||||||
|
import lombok.AllArgsConstructor; |
||||||
|
import lombok.extern.slf4j.Slf4j; |
||||||
|
import org.springblade.core.excel.util.ExcelUtil; |
||||||
|
import org.springblade.core.mp.support.Condition; |
||||||
|
import org.springframework.stereotype.Service; |
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletResponse; |
||||||
|
import java.util.List; |
||||||
|
import java.util.stream.Collectors; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author zhaoqiaobo |
||||||
|
* @create 2024-03-06 15:52 |
||||||
|
*/ |
||||||
|
@Service |
||||||
|
@AllArgsConstructor |
||||||
|
@Slf4j |
||||||
|
public class QualityDispatchNumberServiceImpl implements QualityDispatchNumberService { |
||||||
|
|
||||||
|
private final QualityDispatchNumberMapper numberMapper; |
||||||
|
private final IBasicdataWarehouseClient warehouseClient; |
||||||
|
|
||||||
|
@Override |
||||||
|
public IPage<QualityDispatchNumberVO> number(QualityDispatchNumberQuery query) { |
||||||
|
IPage<QualityDispatchNumberVO> page = Condition.getPage(query); |
||||||
|
page.setPages(1); |
||||||
|
page.setSize(-1); |
||||||
|
if (StrUtil.isEmpty(query.getWarehouseName())) { |
||||||
|
BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse(); |
||||||
|
if (ObjectUtil.isNotEmpty(myCurrentWarehouse)) { |
||||||
|
query.setWarehouseName(myCurrentWarehouse.getName()); |
||||||
|
} else { |
||||||
|
List<BasicdataWarehouseEntity> warehouseEntities = warehouseClient.getMyWarehouseList(); |
||||||
|
query.setWarehouseName(warehouseEntities.stream().map(BasicdataWarehouseEntity::getName).collect(Collectors.joining(","))); |
||||||
|
} |
||||||
|
} |
||||||
|
List<QualityDispatchNumberVO> list = numberMapper.number(page,query); |
||||||
|
// 查询异常数
|
||||||
|
return page.setRecords(list); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void exporNumber(HttpServletResponse response, QualityDispatchNumberQuery query) { |
||||||
|
IPage<QualityDispatchNumberVO> page = Condition.getPage(query); |
||||||
|
page.setPages(1); |
||||||
|
page.setSize(-1); |
||||||
|
if (StrUtil.isEmpty(query.getWarehouseName())) { |
||||||
|
BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse(); |
||||||
|
if (ObjectUtil.isNotEmpty(myCurrentWarehouse)) { |
||||||
|
query.setWarehouseName(myCurrentWarehouse.getName()); |
||||||
|
} else { |
||||||
|
List<BasicdataWarehouseEntity> warehouseEntities = warehouseClient.getMyWarehouseList(); |
||||||
|
query.setWarehouseName(warehouseEntities.stream().map(BasicdataWarehouseEntity::getName).collect(Collectors.joining(","))); |
||||||
|
} |
||||||
|
} |
||||||
|
List<QualityDispatchNumberVO> list = numberMapper.number(page,query); |
||||||
|
ExcelUtil.export(response, list, QualityDispatchNumberVO.class); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public IPage<QualityDispatchTaskVO> task(QualityDispatchTaskQuery query) { |
||||||
|
IPage<QualityDispatchTaskVO> page = Condition.getPage(query); |
||||||
|
if (StrUtil.isEmpty(query.getWarehouseName())) { |
||||||
|
BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse(); |
||||||
|
if (ObjectUtil.isNotEmpty(myCurrentWarehouse)) { |
||||||
|
query.setWarehouseName(myCurrentWarehouse.getName()); |
||||||
|
} else { |
||||||
|
List<BasicdataWarehouseEntity> warehouseEntities = warehouseClient.getMyWarehouseList(); |
||||||
|
query.setWarehouseName(warehouseEntities.stream().map(BasicdataWarehouseEntity::getName).collect(Collectors.joining(","))); |
||||||
|
} |
||||||
|
} |
||||||
|
List<QualityDispatchTaskVO> list = numberMapper.task(page,query); |
||||||
|
// 查询异常数
|
||||||
|
return page.setRecords(list); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void exporTask(HttpServletResponse response, QualityDispatchTaskQuery query) { |
||||||
|
IPage<QualityDispatchTaskVO> page = Condition.getPage(query); |
||||||
|
page.setPages(1); |
||||||
|
page.setSize(-1); |
||||||
|
if (StrUtil.isEmpty(query.getWarehouseName())) { |
||||||
|
BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse(); |
||||||
|
if (ObjectUtil.isNotEmpty(myCurrentWarehouse)) { |
||||||
|
query.setWarehouseName(myCurrentWarehouse.getName()); |
||||||
|
} else { |
||||||
|
List<BasicdataWarehouseEntity> warehouseEntities = warehouseClient.getMyWarehouseList(); |
||||||
|
query.setWarehouseName(warehouseEntities.stream().map(BasicdataWarehouseEntity::getName).collect(Collectors.joining(","))); |
||||||
|
} |
||||||
|
} |
||||||
|
List<QualityDispatchTaskVO> list = numberMapper.task(page,query); |
||||||
|
ExcelUtil.export(response, list, QualityDispatchTaskVO.class); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
} |
@ -0,0 +1,88 @@ |
|||||||
|
package com.logpm.report.vo.qulity.dispatch; |
||||||
|
|
||||||
|
import com.alibaba.excel.annotation.ExcelProperty; |
||||||
|
import com.alibaba.excel.annotation.write.style.ColumnWidth; |
||||||
|
import com.alibaba.excel.annotation.write.style.ContentRowHeight; |
||||||
|
import com.alibaba.excel.annotation.write.style.HeadRowHeight; |
||||||
|
import io.swagger.annotations.ApiModel; |
||||||
|
import io.swagger.annotations.ApiModelProperty; |
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
import java.io.Serializable; |
||||||
|
|
||||||
|
/** |
||||||
|
* 配送统计汇总 |
||||||
|
* |
||||||
|
* @author zhaoqiaobo |
||||||
|
* @create 2024-03-06 16:02 |
||||||
|
*/ |
||||||
|
@ColumnWidth(25) |
||||||
|
@HeadRowHeight(20) |
||||||
|
@ContentRowHeight(18) |
||||||
|
@ApiModel(value = "配送统计汇总", description = "配送统计汇总") |
||||||
|
@Data |
||||||
|
public class QualityDispatchNumberVO implements Serializable { |
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "仓库") |
||||||
|
@ExcelProperty("仓库") |
||||||
|
private String warehouseName; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "配送类型") |
||||||
|
@ExcelProperty("配送类型") |
||||||
|
private String deliveryType; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "预约件数") |
||||||
|
@ExcelProperty("预约件数") |
||||||
|
private String planNum; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "装车件数") |
||||||
|
@ExcelProperty("装车件数") |
||||||
|
private String loadNum; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "签收件数") |
||||||
|
@ExcelProperty("签收件数") |
||||||
|
private String signNum; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "签收率") |
||||||
|
@ExcelProperty("签收率") |
||||||
|
private String signRate; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "预约库存品件数") |
||||||
|
@ExcelProperty("预约库存品件数") |
||||||
|
private String planStockNum; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "库存品装车件数") |
||||||
|
@ExcelProperty("库存品装车件数") |
||||||
|
private String loadStockNum; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "库存品签收件数") |
||||||
|
@ExcelProperty("库存品签收件数") |
||||||
|
private String signStockNum; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "库存品签收率") |
||||||
|
@ExcelProperty("库存品签收率") |
||||||
|
private String signStockRate; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "异常数") |
||||||
|
@ExcelProperty("异常数") |
||||||
|
private String exceptionNum; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "计划准确率") |
||||||
|
@ExcelProperty("计划准确率") |
||||||
|
private String planAccuracy; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "客户数") |
||||||
|
@ExcelProperty("客户数") |
||||||
|
private String customerCount; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "审核客户数") |
||||||
|
@ExcelProperty("审核客户数") |
||||||
|
private String reviewCustomerCount; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "审核率") |
||||||
|
@ExcelProperty("审核率") |
||||||
|
private String reviewRate; |
||||||
|
|
||||||
|
} |
@ -0,0 +1,140 @@ |
|||||||
|
package com.logpm.report.vo.qulity.dispatch; |
||||||
|
|
||||||
|
import com.alibaba.excel.annotation.ExcelProperty; |
||||||
|
import com.alibaba.excel.annotation.write.style.ColumnWidth; |
||||||
|
import com.alibaba.excel.annotation.write.style.ContentRowHeight; |
||||||
|
import com.alibaba.excel.annotation.write.style.HeadRowHeight; |
||||||
|
import io.swagger.annotations.ApiModel; |
||||||
|
import io.swagger.annotations.ApiModelProperty; |
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
import java.io.Serializable; |
||||||
|
|
||||||
|
/** |
||||||
|
* 配送统计汇总 |
||||||
|
* |
||||||
|
* @author zhaoqiaobo |
||||||
|
* @create 2024-03-06 16:02 |
||||||
|
*/ |
||||||
|
@ColumnWidth(25) |
||||||
|
@HeadRowHeight(20) |
||||||
|
@ContentRowHeight(18) |
||||||
|
@ApiModel(value = "配送统计汇总", description = "配送统计汇总") |
||||||
|
@Data |
||||||
|
public class QualityDispatchTaskVO implements Serializable { |
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "仓库") |
||||||
|
@ExcelProperty("仓库") |
||||||
|
private String warehouseName; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "配送类型") |
||||||
|
@ExcelProperty("配送类型") |
||||||
|
private String deliveryType; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "预约单号") |
||||||
|
@ExcelProperty("预约单号") |
||||||
|
private String planReservationCode; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "车次号") |
||||||
|
@ExcelProperty("车次号") |
||||||
|
private String planTrainNumber; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "商场/承运商") |
||||||
|
@ExcelProperty("商场/承运商") |
||||||
|
private String mallName; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "收货人") |
||||||
|
@ExcelProperty("收货人") |
||||||
|
private String reservationConsignee; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "司机/提货人") |
||||||
|
@ExcelProperty("司机/提货人") |
||||||
|
private String driverName; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "车辆") |
||||||
|
@ExcelProperty("车辆") |
||||||
|
private String vehicleName; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "配送日期") |
||||||
|
@ExcelProperty("配送日期") |
||||||
|
private String deliveryTime; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "任务创建人") |
||||||
|
@ExcelProperty("任务创建人") |
||||||
|
private String deliveryCreateUserName; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "预约件数") |
||||||
|
@ExcelProperty("预约件数") |
||||||
|
private String planNum; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "装车件数") |
||||||
|
@ExcelProperty("装车件数") |
||||||
|
private String loadNum; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "签收件数") |
||||||
|
@ExcelProperty("签收件数") |
||||||
|
private String signNum; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "预约库存品件数") |
||||||
|
@ExcelProperty("预约库存品件数") |
||||||
|
private String planStockNum; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "库存品装车件数") |
||||||
|
@ExcelProperty("库存品装车件数") |
||||||
|
private String loadStockNum; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "库存品签收件数") |
||||||
|
@ExcelProperty("库存品签收件数") |
||||||
|
private String signStockNum; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "状态") |
||||||
|
@ExcelProperty("状态") |
||||||
|
private String signStatus; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "签收时间") |
||||||
|
@ExcelProperty("签收时间") |
||||||
|
private String signTime; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "签收人") |
||||||
|
@ExcelProperty("签收人") |
||||||
|
private String signUserName; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "文员审核状态") |
||||||
|
@ExcelProperty("文员审核状态") |
||||||
|
private String reviewStatus; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "审核人") |
||||||
|
@ExcelProperty("审核人") |
||||||
|
private String reviewUserName; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "审核时间") |
||||||
|
@ExcelProperty("审核时间") |
||||||
|
private String reviewTime; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "异常装车件数") |
||||||
|
@ExcelProperty("异常装车件数") |
||||||
|
private String exceptionLoadNum; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "异常签收件数") |
||||||
|
@ExcelProperty("异常签收件数") |
||||||
|
private String exceptionSignNum; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "送货方式") |
||||||
|
@ExcelProperty("送货方式") |
||||||
|
private String deliveryMode; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "发车时间") |
||||||
|
@ExcelProperty("发车时间") |
||||||
|
private String startCarTime; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "到达时间") |
||||||
|
@ExcelProperty("到达时间") |
||||||
|
private String arriveCarTime; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "卸车件数") |
||||||
|
@ExcelProperty("卸车件数") |
||||||
|
private String unLoadNum; |
||||||
|
|
||||||
|
} |
@ -0,0 +1,69 @@ |
|||||||
|
package com.logpm.report.vo.qulity.dispatch; |
||||||
|
|
||||||
|
import com.alibaba.excel.annotation.write.style.ColumnWidth; |
||||||
|
import com.alibaba.excel.annotation.write.style.ContentRowHeight; |
||||||
|
import com.alibaba.excel.annotation.write.style.HeadRowHeight; |
||||||
|
import io.swagger.annotations.ApiModel; |
||||||
|
import io.swagger.annotations.ApiModelProperty; |
||||||
|
import lombok.Data; |
||||||
|
|
||||||
|
import java.io.Serializable; |
||||||
|
|
||||||
|
/** |
||||||
|
* 配送统计汇总-基础数据 |
||||||
|
* |
||||||
|
* @author zhaoqiaobo |
||||||
|
* @create 2024-03-06 16:02 |
||||||
|
*/ |
||||||
|
@ColumnWidth(25) |
||||||
|
@HeadRowHeight(20) |
||||||
|
@ContentRowHeight(18) |
||||||
|
@ApiModel(value = "配送统计汇总-基础数据", description = "配送统计汇总-基础数据") |
||||||
|
@Data |
||||||
|
public class QualityDispatchVO implements Serializable { |
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "事业线") |
||||||
|
private String businessUnit; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "仓库") |
||||||
|
private String warehouseName; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "品牌") |
||||||
|
private String brandName; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "配送时间") |
||||||
|
private String deliveryTime; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "配送类型") |
||||||
|
private String deliveryType; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "包件类型") |
||||||
|
private String conditions; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "预约单号") |
||||||
|
private String planReservationCode; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "配送车次号") |
||||||
|
private String planTrainNumber; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "预约件数") |
||||||
|
private String planNum; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "备货件数") |
||||||
|
private String stockNum; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "装车件数") |
||||||
|
private String loadNum; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "签收件数") |
||||||
|
private String signNum; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "复核件数") |
||||||
|
private String reviewNum; |
||||||
|
|
||||||
|
@ApiModelProperty(value = "回库件数") |
||||||
|
private String retentionNum; |
||||||
|
|
||||||
|
} |
Loading…
Reference in new issue