diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/controller/ReportDeliveryController.java b/blade-service/logpm-report/src/main/java/com/logpm/report/controller/ReportDeliveryController.java index 5f4f171f2..75004f3b3 100644 --- a/blade-service/logpm-report/src/main/java/com/logpm/report/controller/ReportDeliveryController.java +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/controller/ReportDeliveryController.java @@ -90,11 +90,19 @@ public class ReportDeliveryController extends BladeController { IPage pages = reportDeliverService.detailsPage(vo, query); return R.data(pages); } + + // @GetMapping("/details/v2") + // @ApiOperationSupport(order = 5) + // @ApiOperation(value = "配送明细报表v2", notes = "配送明细报表v2") + // public R> detailsPageV2(ReportDetailVO vo, DevilerDetailsQuery query) { + // IPage pages = reportDeliverService.detailsPageV2(vo, query); + // return R.data(pages); + // } @GetMapping("/details/v2") @ApiOperationSupport(order = 5) @ApiOperation(value = "配送明细报表v2", notes = "配送明细报表v2") - public R> detailsPageV2(ReportDetailVO vo, DevilerDetailsQuery query) { - IPage pages = reportDeliverService.detailsPageV2(vo, query); + public R> detailsPageV2(DevilerDetailsQuery query) { + IPage pages = reportDeliverService.detailsPageV3(query); return R.data(pages); } @@ -105,12 +113,19 @@ public class ReportDeliveryController extends BladeController { reportDeliverService.exportDetails(response, vo, query); } + + // @GetMapping("/exportDetails/v2") + // @ApiOperationSupport(order = 6) + // @ApiOperation(value = "导出配送明细报表v2", notes = "导出配送明细报表v2") + // public void exportDetailsV2(HttpServletResponse response, ReportDetailVO vo, DevilerDetailsQuery query) { + // reportDeliverService.exportDetailsV2(response, vo, query); + // + // } @GetMapping("/exportDetails/v2") @ApiOperationSupport(order = 6) @ApiOperation(value = "导出配送明细报表v2", notes = "导出配送明细报表v2") - public void exportDetailsV2(HttpServletResponse response, ReportDetailVO vo, DevilerDetailsQuery query) { - reportDeliverService.exportDetailsV2(response, vo, query); - + public void exportDetailsV3(HttpServletResponse response, DevilerDetailsQuery query) { + reportDeliverService.exportDetailsV3(response, query); } @GetMapping("/stockOrder") diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportDeliverMapeer.java b/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportDeliverMapeer.java index 7795250d3..6ce489e42 100644 --- a/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportDeliverMapeer.java +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportDeliverMapeer.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.logpm.report.dto.DeliveryTrainLoadedScanDTO; +import com.logpm.report.query.DevilerDetailsQuery; import com.logpm.report.vo.ReportCustomerVO; import com.logpm.report.vo.ReportDetailVO; import com.logpm.report.vo.ReportDevilerVO; @@ -75,4 +76,6 @@ public interface ReportDeliverMapeer extends BaseMapper { List getDetailsPageExport(@Param("ew") Wrapper queryWrapper, @Param("current") Integer current, @Param("size") Integer size); List getDetailsPageV2(IPage page, @Param("ew") Wrapper queryWrapper); + + List getDetailsPageV3(@Param("page") IPage page, @Param("query") DevilerDetailsQuery query); } diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportDeliverMapper.xml b/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportDeliverMapper.xml index 5ad020432..612fe16e7 100644 --- a/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportDeliverMapper.xml +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/mapper/ReportDeliverMapper.xml @@ -908,4 +908,88 @@ limit #{current},#{size} + + diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/query/DevilerDetailsQuery.java b/blade-service/logpm-report/src/main/java/com/logpm/report/query/DevilerDetailsQuery.java index 1986a27b4..1ad4da04c 100644 --- a/blade-service/logpm-report/src/main/java/com/logpm/report/query/DevilerDetailsQuery.java +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/query/DevilerDetailsQuery.java @@ -26,23 +26,23 @@ public class DevilerDetailsQuery extends Query { @ApiModelProperty(value = "仓库(范围)", position = 5) private String warehouseNameRange; - @ApiModelProperty(value = "配送类型(范围)", position = 7) - private String typeRange; - - @ApiModelProperty(value = "配送种类(范围)", position = 9) - private String kindRange; - - @ApiModelProperty(value = "配送车辆(范围)", position = 11) - private String vehicleNameRange; - - @ApiModelProperty(value = "配送司机(范围)", position = 13) - private String driverNameRange; - - @ApiModelProperty(value = "客户名称(范围)", position = 15) - private String consigneeRange; - - @ApiModelProperty(value = "运单收货人", position = 17) - private String consigneeNameRange; + // @ApiModelProperty(value = "配送类型(范围)", position = 7) + // private String typeRange; + // + // @ApiModelProperty(value = "配送种类(范围)", position = 9) + // private String kindRange; + // + // @ApiModelProperty(value = "配送车辆(范围)", position = 11) + // private String vehicleNameRange; + // + // @ApiModelProperty(value = "配送司机(范围)", position = 13) + // private String driverNameRange; + // + // @ApiModelProperty(value = "客户名称(范围)", position = 15) + // private String consigneeRange; + // + // @ApiModelProperty(value = "运单收货人", position = 17) + // private String consigneeNameRange; @ApiModelProperty(value = "签收时间开始(范围)", position = 18) private Date startSjsigningTime; @@ -50,4 +50,16 @@ public class DevilerDetailsQuery extends Query { @ApiModelProperty(value = "签收时间结束(范围)", position = 19) private Date endSjsigningTime; + @ApiModelProperty(value = "车次") + private String trainNumber; + + @ApiModelProperty(value = "预约单号") + private String reservationCode; + + @ApiModelProperty(value = "订单自编码") + private String stockArticleId; + + @ApiModelProperty(value = "包条码") + private String orderPackageCode; + } diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/service/ReportDeliverService.java b/blade-service/logpm-report/src/main/java/com/logpm/report/service/ReportDeliverService.java index 78939c7e1..97bde4496 100644 --- a/blade-service/logpm-report/src/main/java/com/logpm/report/service/ReportDeliverService.java +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/service/ReportDeliverService.java @@ -101,4 +101,7 @@ public interface ReportDeliverService { void exportDetailsV2(HttpServletResponse response, ReportDetailVO vo, DevilerDetailsQuery query); + IPage detailsPageV3(DevilerDetailsQuery query); + + void exportDetailsV3(HttpServletResponse response, DevilerDetailsQuery query); } diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/ReportDeliverServiceImpl.java b/blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/ReportDeliverServiceImpl.java index 432c14e88..088455872 100644 --- a/blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/ReportDeliverServiceImpl.java +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/ReportDeliverServiceImpl.java @@ -5,10 +5,12 @@ import cn.hutool.core.convert.Convert; import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import com.alibaba.excel.EasyExcel; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.logpm.basicdata.entity.BasicdataWarehouseEntity; import com.logpm.basicdata.feign.IBasicdataWarehouseClient; import com.logpm.report.dto.DeliveryTrainLoadedScanDTO; import com.logpm.report.mapper.ReportDeliverMapeer; @@ -44,6 +46,7 @@ import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.stereotype.Service; import javax.servlet.http.HttpServletResponse; +import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -198,7 +201,7 @@ public class ReportDeliverServiceImpl implements ReportDeliverService { trainCustomQuery(query, queryWrapper); // 仓库权限 ReportUtil.buildReportWarehouseAuth(vo.getWarehouseName(), query.getWarehouseNameRange(), queryWrapper, warehouseClient); - reportExcelUtil.export(response, deliveryTrainReader, ReportDevilerVO.class, queryWrapper, "配送车次维度报表",1000L, ReportExcelUtil.SHEETDATANUM); + reportExcelUtil.export(response, deliveryTrainReader, ReportDevilerVO.class, queryWrapper, "配送车次维度报表", 1000L, ReportExcelUtil.SHEETDATANUM); } @Override @@ -281,7 +284,7 @@ public class ReportDeliverServiceImpl implements ReportDeliverService { int zeroSize = zeroTotal % size; long limitA = 0; long limitB = 0; - if(zeroSize == 0){ + if (zeroSize == 0) { zeroSize = size; } if (!NumberUtil.equals(zeroCurrent, 1)) { @@ -290,7 +293,7 @@ public class ReportDeliverServiceImpl implements ReportDeliverService { } limitB = zeroSize; List zeroPage = reportDeliverMapeer.getDetailsZeroPage(limitA, limitB, queryWrapper); - if(CollUtil.isEmpty(detailsPage)){ + if (CollUtil.isEmpty(detailsPage)) { detailsPage = new ArrayList<>(); } detailsPage.addAll(zeroPage); @@ -310,18 +313,18 @@ public class ReportDeliverServiceImpl implements ReportDeliverService { QueryUtil.timeLe("sjsigning_time", query.getEndSjsigningTime(), queryWrapper); // 仓库 QueryUtil.splitEqQuery("warehouse_name", query.getWarehouseNameRange(), queryWrapper); - // 配送类型 - QueryUtil.splitEqQuery("type", query.getTypeRange(), queryWrapper); - // 配送种类 - QueryUtil.splitEqQuery("kind", query.getKindRange(), queryWrapper); - // 配送车辆 - QueryUtil.splitEqQuery("vehicle_name", query.getVehicleNameRange(), queryWrapper); - // 配送司机 - QueryUtil.splitEqQuery("driver_name", query.getDriverNameRange(), queryWrapper); - // 客户名称 - QueryUtil.splitEqQuery("dr_consignee", query.getConsigneeRange(), queryWrapper); - // 运单收货人 - QueryUtil.splitEqQuery("consignee_name", query.getConsigneeNameRange(), queryWrapper); + // // 配送类型 + // QueryUtil.splitEqQuery("type", query.getTypeRange(), queryWrapper); + // // 配送种类 + // QueryUtil.splitEqQuery("kind", query.getKindRange(), queryWrapper); + // // 配送车辆 + // QueryUtil.splitEqQuery("vehicle_name", query.getVehicleNameRange(), queryWrapper); + // // 配送司机 + // QueryUtil.splitEqQuery("driver_name", query.getDriverNameRange(), queryWrapper); + // // 客户名称 + // QueryUtil.splitEqQuery("dr_consignee", query.getConsigneeRange(), queryWrapper); + // // 运单收货人 + // QueryUtil.splitEqQuery("consignee_name", query.getConsigneeNameRange(), queryWrapper); } @Override @@ -336,14 +339,14 @@ public class ReportDeliverServiceImpl implements ReportDeliverService { private static void checkDetailDate(ReportDetailVO vo, DevilerDetailsQuery query) { // 添加时间校验 - if(ReportUtil.areAllPropertiesEmpty(vo)){ + if (ReportUtil.areAllPropertiesEmpty(vo)) { if (ObjectUtil.isEmpty(query.getStartTaskTime()) && ObjectUtil.isEmpty(query.getEndTaskTime()) && ObjectUtil.isEmpty(query.getStartSjsigningTime()) && ObjectUtil.isEmpty(query.getEndSjsigningTime())) { throw new ServiceException("配送日期和签收日期必须要填一个"); } if (ObjectUtil.isNotEmpty(query.getStartTaskTime()) && ObjectUtil.isNotEmpty(query.getEndTaskTime())) { ReportUtil.dateIsWithinOneMonth(vo.getTaskTime(), query.getStartTaskTime(), query.getEndTaskTime(), "配送日期"); } - if(ObjectUtil.isNotEmpty(query.getStartSjsigningTime()) && ObjectUtil.isNotEmpty(query.getEndSjsigningTime())){ + if (ObjectUtil.isNotEmpty(query.getStartSjsigningTime()) && ObjectUtil.isNotEmpty(query.getEndSjsigningTime())) { ReportUtil.dateIsWithinOneMonth(null, query.getStartSjsigningTime(), query.getEndSjsigningTime(), "签收日期"); } } @@ -433,4 +436,43 @@ public class ReportDeliverServiceImpl implements ReportDeliverService { reportExcelUtil.export(response, deliveryDetailV2Reader, ReportDetailVO.class, queryWrapper, "配送明细报表"); } + @Override + public IPage detailsPageV3(DevilerDetailsQuery query) { + IPage page = Condition.getPage(query); + if (StrUtil.isEmpty(query.getWarehouseNameRange())) { + BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse(); + if (ObjectUtil.isNotEmpty(myCurrentWarehouse)) { + query.setWarehouseNameRange(myCurrentWarehouse.getName()); + } else { + List warehouseEntities = warehouseClient.getMyWarehouseList(); + query.setWarehouseNameRange(warehouseEntities.stream().map(BasicdataWarehouseEntity::getName).collect(Collectors.joining(","))); + } + } + List detailsPage = reportDeliverMapeer.getDetailsPageV3(page, query); + return page.setRecords(detailsPage); + } + + @Override + public void exportDetailsV3(HttpServletResponse response, DevilerDetailsQuery query) { + IPage page = Condition.getPage(query); + page.setPages(1); + page.setSize(100000); + if (StrUtil.isEmpty(query.getWarehouseNameRange())) { + BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse(); + if (ObjectUtil.isNotEmpty(myCurrentWarehouse)) { + query.setWarehouseNameRange(myCurrentWarehouse.getName()); + } else { + List warehouseEntities = warehouseClient.getMyWarehouseList(); + query.setWarehouseNameRange(warehouseEntities.stream().map(BasicdataWarehouseEntity::getName).collect(Collectors.joining(","))); + } + } + List detailsPage = reportDeliverMapeer.getDetailsPageV3(page, query); + ReportExcelUtil.setExportHeader(response, "配送明细报表"); + try { + EasyExcel.write(response.getOutputStream(), ReportDetailVO.class).sheet("配送明细").doWrite(detailsPage); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + } diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/vo/ReportDetailVO.java b/blade-service/logpm-report/src/main/java/com/logpm/report/vo/ReportDetailVO.java index b3a693518..da758a352 100644 --- a/blade-service/logpm-report/src/main/java/com/logpm/report/vo/ReportDetailVO.java +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/vo/ReportDetailVO.java @@ -97,7 +97,7 @@ public class ReportDetailVO implements Serializable { @ExcelProperty("订单自编码") private String stockArticleId; - @ApiModelProperty(value = "客户电话") + @ApiModelProperty(value = "包条码") @ExcelProperty("包条码") private String orderPackageCode; @@ -209,4 +209,8 @@ public class ReportDetailVO implements Serializable { @ExcelProperty("签收方式") private String signType; + @ApiModelProperty(value = "回库状态") + @ExcelProperty("回库状态") + private String returnToStockStatus; + }