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