From 43fae7c475d6e5744fc7f07cb1d5799e5da27020 Mon Sep 17 00:00:00 2001 From: PigBaoBei <2739175034@qq.com> Date: Mon, 25 Mar 2024 15:47:01 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BE=85=E7=AD=BE=E6=94=B6=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E5=AF=BC=E5=87=BA=E8=AE=A2=E5=8D=95=E3=80=81=E5=8C=85=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DistributionSignforController.java | 39 +++++ .../excel/DistributionSignforOrderExcel.java | 125 ++++++++++++++ .../DistributionSignforPackageExcel.java | 163 ++++++++++++++++++ .../service/IDistributionSignforService.java | 16 ++ .../impl/DistributionSignforServiceImpl.java | 55 ++++++ 5 files changed, 398 insertions(+) create mode 100644 blade-service/logpm-distribution/src/main/java/com/logpm/distribution/excel/DistributionSignforOrderExcel.java create mode 100644 blade-service/logpm-distribution/src/main/java/com/logpm/distribution/excel/DistributionSignforPackageExcel.java diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionSignforController.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionSignforController.java index bedef3cb0..b9dcaa338 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionSignforController.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionSignforController.java @@ -29,7 +29,9 @@ import com.logpm.distribution.dto.app.DistributionAppAddvalueDTO; import com.logpm.distribution.entity.DistributionSignPrintEntity; import com.logpm.distribution.entity.DistributionSignforEntity; import com.logpm.distribution.excel.DistributionSignforExcel; +import com.logpm.distribution.excel.DistributionSignforOrderExcel; import com.logpm.distribution.excel.DistributionSignforOwnExcel; +import com.logpm.distribution.excel.DistributionSignforPackageExcel; import com.logpm.distribution.service.IDistributionAsyncService; import com.logpm.distribution.service.IDistributionDeliveryListService; import com.logpm.distribution.service.IDistributionReservationService; @@ -149,6 +151,8 @@ public class DistributionSignforController extends BladeController { } + + /** * 签收详情包件信息 */ @@ -338,6 +342,41 @@ public class DistributionSignforController extends BladeController { return R.status(distributionSignforService.deleteLogic(Func.toLongList(ids))); } + /** + * 签收详情包件信息 + */ + @PostMapping("/export-distributionSignforPackageList") + @ApiOperationSupport(order = 1) + @ApiOperation(value = "导出预约包件列表", notes = "传入distributionSignfor") + public void exportDistributionSignforPackageList(@RequestBody Map map, HttpServletResponse response) { + String method = "exportDistributionSignforPackageList"; + if (Func.isEmpty(map.get("signforId"))){ + log.info(method+ " signforId is null"); + } + String signforId = (String) map.get("signforId"); +// List distributionSignforsnmbVO= distributionSignforService.signforPackageList(signforId); + List distributionSignfor = distributionSignforService.exportDistributionSignforPackageList(Long.parseLong(signforId)); + ExcelUtil.export(response, "签收管理数据" + DateUtil.time(), "待签收管理数据表", distributionSignfor, DistributionSignforPackageExcel.class); + + } + + /** + * 签收详情包件信息 + */ + @PostMapping("/export-distributionSignforOrderList") + @ApiOperationSupport(order = 1) + @ApiOperation(value = "导出预约包件列表", notes = "传入distributionSignfor") + public void exportDistributionSignforOrderList(@RequestBody Map map, HttpServletResponse response) { +// List distributionSignforsnmbVO= distributionSignforService.signforPackageList(signforId); + String method = "exportDistributionSignforPackageList"; + if (Func.isEmpty(map.get("signforId"))){ + log.info(method+ " signforId is null"); + } + String signforId = (String) map.get("signforId"); + List distributionSignfor = distributionSignforService.exportDistributionSignforOrderList(Long.parseLong(signforId)); + ExcelUtil.export(response, "签收管理数据" + DateUtil.time(), "待签收管理数据表", distributionSignfor, DistributionSignforOrderExcel.class); + } + /** * 待 导出数据 diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/excel/DistributionSignforOrderExcel.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/excel/DistributionSignforOrderExcel.java new file mode 100644 index 000000000..3a3eb9271 --- /dev/null +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/excel/DistributionSignforOrderExcel.java @@ -0,0 +1,125 @@ +/* + * 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.distribution.excel; + + +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 lombok.Data; + +import java.io.Serializable; +import java.util.Date; + + +/** + * 签收导出包件Excel实体 + * + * @author cyz + * @since 2023-06-13 + */ +@Data +@ColumnWidth(25) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class DistributionSignforOrderExcel implements Serializable { + + private static final long serialVersionUID = 1L; + + @ColumnWidth(20) + @ExcelProperty("运单号") + private String waybillNumber; + + @ColumnWidth(20) + @ExcelProperty("服务号") + private String serviceNumber; + + @ColumnWidth(20) + @ExcelProperty("订单自编号") + private String orderCode; + + @ColumnWidth(20) + @ExcelProperty("仓库") + private String warehouse; + + @ColumnWidth(20) + @ExcelProperty("总数量") + private Integer totalNumber; + + @ColumnWidth(20) + @ExcelProperty("在库数量") + private Integer handQuantity; + + @ColumnWidth(20) + @ExcelProperty("计划数量") + private Integer reservationNum; + + + @ColumnWidth(20) + @ExcelProperty("装车数量") + private Integer loadingNumber; + + @ColumnWidth(20) + @ExcelProperty("签收数量") + private Integer signinQuantity; + + @ColumnWidth(20) + @ExcelProperty("品牌") + private String brand; + + @ColumnWidth(20) + @ExcelProperty("收货单位") + private String consigneeUnit; + + @ColumnWidth(20) + @ExcelProperty("商场名称") + private String mallName; + + @ColumnWidth(20) + @ExcelProperty("门店名称") + private String storeName; + + @ColumnWidth(20) + @ExcelProperty("运单收货人") + private String consigneePerson; + + @ColumnWidth(20) + @ExcelProperty("运单收货地址") + private String consigneeAddress; + + + @ColumnWidth(20) + @ExcelProperty("运单收货电话") + private String consigneeMobile; + + @ColumnWidth(20) + @ExcelProperty("终端收货人") + private String customerName; + + @ColumnWidth(20) + @ExcelProperty("终端收货地址") + private String customerAddress; + + @ColumnWidth(20) + @ExcelProperty("终端收货电话") + private String customerTelephone; + + + + +} diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/excel/DistributionSignforPackageExcel.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/excel/DistributionSignforPackageExcel.java new file mode 100644 index 000000000..ed88eec83 --- /dev/null +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/excel/DistributionSignforPackageExcel.java @@ -0,0 +1,163 @@ +/* + * 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.distribution.excel; + + +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 lombok.Data; + +import java.io.Serializable; +import java.util.Date; + + +/** + * 签收导出包件Excel实体 + * + * @author cyz + * @since 2023-06-13 + */ +@Data +@ColumnWidth(25) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class DistributionSignforPackageExcel implements Serializable { + + private static final long serialVersionUID = 1L; + + @ColumnWidth(20) + @ExcelProperty("运单号") + private String waybillNumber; + + + @ColumnWidth(20) + @ExcelProperty("服务号") + private String serviceNumber; + + @ColumnWidth(20) + @ExcelProperty("订单自编号") + private String orderCode; + + @ColumnWidth(20) + @ExcelProperty("包条码") + private String orderPackageCode; + + @ColumnWidth(20) + @ExcelProperty("仓库") + private String warehouse; + + + @ColumnWidth(20) + @ExcelProperty("发站仓") + private String sendWarehouseName; + + @ColumnWidth(20) + @ExcelProperty("目的仓") + private String acceptWarehouseName; + + + @ColumnWidth(20) + @ExcelProperty("入库时间") + private Date createTime; + + @ColumnWidth(20) + @ExcelProperty("入库车次") + private String trainNumber; + + @ColumnWidth(20) + @ExcelProperty("包件类型") + private String conditions; + + @ColumnWidth(20) + @ExcelProperty("一级品") + private String firsts; + + @ColumnWidth(20) + @ExcelProperty("二级品") + private String second; + + @ColumnWidth(20) + @ExcelProperty("三级品") + private String thirdProduct; + + @ColumnWidth(20) + @ExcelProperty("当前状态") + private String orderPackageStatusName; + + @ColumnWidth(20) + @ExcelProperty("冻结状态") + private String orderPackageFreezeStatusName; + + @ColumnWidth(20) + @ExcelProperty("备货状态") + private String orderPackageStockupStatusName; + + @ColumnWidth(20) + @ExcelProperty("预约状态") + private String orderPackageReservationStatusName; + + @ColumnWidth(20) + @ExcelProperty("装车状态") + private String orderPackageLoadingStatusName; + + @ColumnWidth(20) + @ExcelProperty("计划数量") + private Integer reservationNum; + + @ColumnWidth(20) + @ExcelProperty("装车数量") + private Integer loadingNub; + + @ColumnWidth(20) + @ExcelProperty("签收数量") + private Integer signingNub; + + @ColumnWidth(20) + @ExcelProperty("装车方式") + private String scanStatus; + + @ColumnWidth(20) + @ExcelProperty("计划装车人") + private String driverName; + + @ColumnWidth(20) + @ExcelProperty("实际装车人") + private String scanUser; + + @ColumnWidth(20) + @ExcelProperty("装车时间") + private String loadingTime; + + @ColumnWidth(20) + @ExcelProperty("签收人") + private String signingUser; + + @ColumnWidth(20) + @ExcelProperty("签收时间") + private String signingTime; + +// @ColumnWidth(20) +// @ExcelProperty("装车时间") +// private String warehouse; +// +// @ColumnWidth(20) +// @ExcelProperty("签收人") +// private String warehouse; + +} diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionSignforService.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionSignforService.java index 187850c36..84515a59a 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionSignforService.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionSignforService.java @@ -26,7 +26,9 @@ import com.logpm.distribution.entity.DistributionReservationEntity; import com.logpm.distribution.entity.DistributionSignPrintEntity; import com.logpm.distribution.entity.DistributionSignforEntity; import com.logpm.distribution.excel.DistributionSignforExcel; +import com.logpm.distribution.excel.DistributionSignforOrderExcel; import com.logpm.distribution.excel.DistributionSignforOwnExcel; +import com.logpm.distribution.excel.DistributionSignforPackageExcel; import com.logpm.distribution.vo.*; import com.logpm.distribution.vo.app.DistributionAppDeliveryListVO; import com.logpm.distribution.vo.app.DistributionAppParcelListVO; @@ -305,4 +307,18 @@ public interface IDistributionSignforService extends BaseService exportDistributionSignforPackageList(Long signforId); + + /** + * 待签收订单导出 + * @param signforId + * @return + */ + List exportDistributionSignforOrderList(Long signforId); } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java index fca899033..90292a90f 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java @@ -35,7 +35,9 @@ import com.logpm.distribution.dto.*; import com.logpm.distribution.dto.app.DistributionAppDeliveryListDTO; import com.logpm.distribution.entity.*; import com.logpm.distribution.excel.DistributionSignforExcel; +import com.logpm.distribution.excel.DistributionSignforOrderExcel; import com.logpm.distribution.excel.DistributionSignforOwnExcel; +import com.logpm.distribution.excel.DistributionSignforPackageExcel; import com.logpm.distribution.mapper.*; import com.logpm.distribution.service.*; import com.logpm.distribution.vo.*; @@ -1192,6 +1194,59 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl exportDistributionSignforPackageList(Long signforId) { + List distributionParcelListVOS = this.signforPackageList(signforId); + List distributionSignforPackageExcels = new ArrayList<>(); + for (DistributionParcelListVO distributionParcelListVO : distributionParcelListVOS) { + DistributionSignforPackageExcel packageExcel = Func.copy(distributionParcelListVO, DistributionSignforPackageExcel.class); + distributionSignforPackageExcels.add(packageExcel); + } + return distributionSignforPackageExcels; + } + + /** + * @param signforId + * @return + */ + @Override + public List exportDistributionSignforOrderList(Long signforId) { + DistributionSignforEntity signforEntity = this.getById(signforId); + List reservationStockarticleEntityList = distributionReservationStockarticleService.list(Wrappers.query().lambda() + .eq(DistributionReservationStockarticleEntity::getReservationId, signforEntity.getReservationId()) + .ne(DistributionReservationStockarticleEntity::getStockArticleStatus, ReservationOrderStatusConstant.quxiao.getValue())); +// if (Func.isEmpty(reservationStockarticleEntityList)) { +// log.error("#####################预约查询无订单信息,reservationId:{}", signforEntity.getReservationId()); +// return null; +// } + List orderIds = reservationStockarticleEntityList.stream().map(DistributionReservationStockarticleEntity::getStockArticleId).collect(Collectors.toList()); + List distributionSignforOrderExcels = new ArrayList<>(); + if (Func.isNotEmpty(orderIds)) { + List stockArticleEntities = distributionStockArticleService.listByIds(orderIds); + List distributionStockArticleVOS = DistributionStockArticleWrapper.build().listVO(stockArticleEntities); + for (DistributionStockArticleVO distributionStockArticleVO : distributionStockArticleVOS) { + //查询计划、装车、签收数量 + DistributionReservationStockarticleEntity reservationStockarticleEntity = distributionReservationStockarticleService.getOne(Wrappers.query().lambda() + .eq(DistributionReservationStockarticleEntity::getReservationId, signforEntity.getReservationId()) + .eq(DistributionReservationStockarticleEntity::getStockArticleId, distributionStockArticleVO.getId()) + .ne(DistributionReservationStockarticleEntity::getStockArticleStatus, ReservationOrderStatusConstant.quxiao.getValue()) + ); + distributionStockArticleVO.setReservationNum(reservationStockarticleEntity.getReservationNum()); + Integer loadingNum = distributionLoadscanMapper.selectOrderLoadingNumByReservationIdAndDeliveryIdAndOrderId(signforEntity.getReservationId(), signforEntity.getDeliveryId(), distributionStockArticleVO.getId()); + distributionStockArticleVO.setLoadingNumber(loadingNum); + Integer signingNum = distributionLoadscanMapper.selectOrderSigningNumByReservationIdAndDeliveryIdAndOrderId(signforEntity.getReservationId(), signforEntity.getDeliveryId(), distributionStockArticleVO.getId()); + distributionStockArticleVO.setSigningNumber(signingNum); + DistributionSignforOrderExcel orderExcel = Func.copy(distributionStockArticleVO, DistributionSignforOrderExcel.class); + distributionSignforOrderExcels.add(orderExcel); + } + } + return distributionSignforOrderExcels; + } + private List handleStockUp(DistributionStockupEntity distributionStockupEntity) { List nodeVos = new ArrayList<>(); try {