diff --git a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionStockListVO.java b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionStockListVO.java index bcf16ff97..942eeda95 100644 --- a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionStockListVO.java +++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionStockListVO.java @@ -44,6 +44,12 @@ public class DistributionStockListVO extends DistributionStockListEntity { */ @ApiModelProperty(value = "装车数量") private String loadingNumber; + + /** + * 装车数量 + */ + @ApiModelProperty(value = "签收数量") + private String signedingNumber; /** * 添加数量 */ @@ -96,6 +102,12 @@ public class DistributionStockListVO extends DistributionStockListEntity { @ApiModelProperty(value = "以备件数") private Integer stockupNum; + /** + * 以备件数 + */ + @ApiModelProperty(value = "以备件数") + private Integer readyStock; + /** * 托盘id diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/bean/MyExcelUtil.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/bean/MyExcelUtil.java index 4056da135..b041896c9 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/bean/MyExcelUtil.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/bean/MyExcelUtil.java @@ -5,12 +5,20 @@ import com.alibaba.excel.ExcelWriter; import com.alibaba.excel.write.builder.ExcelWriterBuilder; import com.alibaba.excel.write.handler.WriteHandler; import com.alibaba.excel.write.metadata.WriteSheet; -import com.logpm.distribution.excel.DistributionStockupPackageListDetailExcel; +import com.logpm.distribution.dto.DistributionDeliveryExcelDTO; +import com.logpm.distribution.excel.*; +import com.logpm.distribution.vo.DistributionDeliveryInfoVO; +import com.logpm.distribution.vo.DistributionParcelListVO; +import com.logpm.distribution.vo.DistributionStockArticleVO; +import com.logpm.distribution.vo.DistributionStockListVO; import org.apache.commons.codec.Charsets; import org.springblade.core.excel.util.ExcelUtil; +import org.springblade.core.tool.utils.Func; +import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; import java.net.URLEncoder; +import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -59,4 +67,61 @@ public class MyExcelUtil extends ExcelUtil { } + public static void exDeliveryDetailedList(HttpServletResponse response, DistributionDeliveryExcelDTO map, String fileName) { + + ServletOutputStream outputStream = null; + try { + response.setContentType("application/vnd.ms-excel"); + fileName = URLEncoder.encode(fileName, Charsets.UTF_8.name()); + response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx"); + response.setHeader("content-Type", "application/vnd.ms-excel"); + response.setCharacterEncoding("UTF-8"); + outputStream = response.getOutputStream(); + ExcelWriter build = EasyExcel.write(outputStream).build(); +// Object o = map.get("client"); + + WriteSheet clientList = EasyExcel.writerSheet(1,"客户列表").head(DistributionDeliveryClientExcel.class).build(); + WriteSheet orderList = EasyExcel.writerSheet("订单列表").head(DistributionDeliveryOrderExcel.class).build(); + WriteSheet inventoryList = EasyExcel.writerSheet("库存品列表").head(DistributionDeliveryInventoryExcel.class).build(); + WriteSheet packageList = EasyExcel.writerSheet("包件列表").head(DistributionDeliveryPackageExcel.class).build(); + if (Func.isNotEmpty(map.getDeliveryInfoVOS())){ + List<DistributionDeliveryClientExcel> deliveryClientExcels = new ArrayList<>(); + for (DistributionDeliveryInfoVO deliveryInfoVO : map.getDeliveryInfoVOS()) { + DistributionDeliveryClientExcel clientExcel = Func.copy(deliveryInfoVO, DistributionDeliveryClientExcel.class); + deliveryClientExcels.add(clientExcel); + } + build.write(deliveryClientExcels,clientList); + } + if (Func.isNotEmpty(map.getDistributionStockArticleVOS())){ + List<DistributionDeliveryOrderExcel> distributionStockArticleVOS = new ArrayList<>(); + for (DistributionStockArticleVO distributionStockArticleVO : map.getDistributionStockArticleVOS()) { + DistributionDeliveryOrderExcel deliveryOrderExcel = Func.copy(distributionStockArticleVO, DistributionDeliveryOrderExcel.class); + distributionStockArticleVOS.add(deliveryOrderExcel); + } + build.write(distributionStockArticleVOS,orderList); + } + if (Func.isNotEmpty(map.getPackageListByDeliverylistId())){ + List<DistributionDeliveryPackageExcel> distributionDeliveryPackageExcelList = new ArrayList<>(); + for (DistributionParcelListVO distributionParcelListVO : map.getPackageListByDeliverylistId()) { + DistributionDeliveryPackageExcel distributionDeliveryPackageExcel = Func.copy(distributionParcelListVO, DistributionDeliveryPackageExcel.class); + distributionDeliveryPackageExcelList.add(distributionDeliveryPackageExcel); + } + build.write(distributionDeliveryPackageExcelList,packageList); + } + if (Func.isNotEmpty(map.getDistributionStockListVOS())){ + List<DistributionDeliveryInventoryExcel> distributionDeliveryPackageExcelList = new ArrayList<>(); + + for (DistributionStockListVO distributionStockListVO : map.getDistributionStockListVOS()) { + DistributionDeliveryInventoryExcel distributionDeliveryInventoryExcel = Func.copy(distributionStockListVO, DistributionDeliveryInventoryExcel.class); + distributionDeliveryPackageExcelList.add(distributionDeliveryInventoryExcel); + } + build.write(distributionDeliveryPackageExcelList,inventoryList); + } + + build.finish(); + } catch (Exception e) { + + throw new RuntimeException("请稍后再试...."); + } + } } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionDeliveryListController.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionDeliveryListController.java index a3a98a21a..0be60c311 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionDeliveryListController.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionDeliveryListController.java @@ -22,6 +22,8 @@ import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.logpm.basicdata.entity.BasicdataWarehouseEntity; import com.logpm.basicdata.feign.IBasicdataWarehouseClient; +import com.logpm.distribution.bean.MyExcelUtil; +import com.logpm.distribution.dto.DistributionDeliveryExcelDTO; import com.logpm.distribution.dto.DistributionDeliveryInfoDTO; import com.logpm.distribution.dto.DistributionDeliveryListDTO; import com.logpm.distribution.dto.DistrilbutionAppsignforDTO; @@ -55,6 +57,7 @@ import springfox.documentation.annotations.ApiIgnore; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.text.ParseException; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -532,6 +535,28 @@ public class DistributionDeliveryListController extends BladeController { } + /** + * 导出数据 + */ + @GetMapping("/export-distributionDeliveryListDetail") + @ApiOperationSupport(order = 9) + @ApiOperation(value = "导出数据", notes = "传入distributionDeliveryList") + public void exportDistributionDeliveryListDetail(@ApiIgnore @RequestParam Long deliveryId, BladeUser bladeUser, HttpServletResponse response) { +// BasicdataWarehouseEntity myCurrentWarehouse = basicdataWarehouseClient.getMyCurrentWarehouse(); +// if (Func.isEmpty(myCurrentWarehouse)){ +// return R.fail(403,"未授权仓库!!!"); +// } +// DistributionDeliveryListEntity deliveryListEntity = distributionDeliveryListService.getById(deliveryId); +// if (Func.isEmpty(deliveryListEntity)){ +// log.info("#####################"); +// return R.fail(403,"未授权仓库!!!"); +// } + + DistributionDeliveryExcelDTO map = distributionDeliveryListService.exportDistributionDeliveryListDetail(deliveryId); + MyExcelUtil.exDeliveryDetailedList(response,map,"配送清单"); + } + + diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/DistributionDeliveryExcelDTO.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/DistributionDeliveryExcelDTO.java new file mode 100644 index 000000000..dab5a0215 --- /dev/null +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/dto/DistributionDeliveryExcelDTO.java @@ -0,0 +1,23 @@ +package com.logpm.distribution.dto; + + +import com.logpm.distribution.vo.DistributionDeliveryInfoVO; +import com.logpm.distribution.vo.DistributionParcelListVO; +import com.logpm.distribution.vo.DistributionStockArticleVO; +import com.logpm.distribution.vo.DistributionStockListVO; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.List; +@Data +public class DistributionDeliveryExcelDTO { + + + private List<DistributionDeliveryInfoVO> deliveryInfoVOS; + private List<DistributionStockArticleVO> distributionStockArticleVOS; + private List<DistributionStockListVO> distributionStockListVOS; + private List<DistributionParcelListVO> packageListByDeliverylistId; + + + +} diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/excel/DistributionDeliveryClientExcel.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/excel/DistributionDeliveryClientExcel.java new file mode 100644 index 000000000..73d7898c1 --- /dev/null +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/excel/DistributionDeliveryClientExcel.java @@ -0,0 +1,212 @@ +/* + * 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 com.fasterxml.jackson.annotation.JsonFormat; +import com.logpm.distribution.entity.DistributionDeliveryInfoEntity; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +/** + * 配送装车中间表 视图实体类 + * + * @author TJJ + * @since 2023-06-16 + */ +@Data +@ColumnWidth(25) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class DistributionDeliveryClientExcel implements Serializable { + private static final long serialVersionUID = 1L; + + + /** + * 租户号 + */ + @ColumnWidth(20) + @ExcelProperty("车次号") + private String trainNumber; + + /** + * 租户号 + */ + @ColumnWidth(20) + @ExcelProperty("预约单号") + private String reservationCode; + + /** + * 租户号 + */ + @ColumnWidth(20) + @ExcelProperty("运单号") + private String waybillNo; + + /** + * 租户号 + */ + @ColumnWidth(20) + @ExcelProperty("商场名称") + private String mallName; + + /** + * 租户号 + */ + @ColumnWidth(20) + @ExcelProperty("收货人") + private String consignee; + + /** + * 租户号 + */ + @ColumnWidth(20) + @ExcelProperty("收货电话") + private String deliveryPhone; + + /** + * 租户号 + */ + @ColumnWidth(20) + @ExcelProperty("收货地址") + private String deliveryAddress; + + /** + * 租户号 + */ + @ColumnWidth(20) + @ExcelProperty("收货单位") + private String receivingUnit; + + /** + * 租户号 + */ + @ColumnWidth(20) + @ExcelProperty("计划包件数") + private Integer reservationNum; + + /** + * 租户号 + */ + @ColumnWidth(20) + @ExcelProperty("计划库存品数") + private Integer reservationStockListNum; + + /** + * 租户号 + */ + @ColumnWidth(20) + @ExcelProperty("装车包件数") + private Integer loadedNub; + + /** + * 租户号 + */ + @ColumnWidth(20) + @ExcelProperty("装车库存品数") + private Integer inventoryNub; + + /** + * 租户号 + */ + @ColumnWidth(20) + @ExcelProperty("签收数") + private Integer receivedQuantity; + + /** + * 租户号 + */ + @ColumnWidth(20) + @ExcelProperty("备注") + private String remarks; + + /** + * 租户号 + */ + @ColumnWidth(20) + @ExcelProperty("是否加急") + private String isUrgentName; + + /** + * 租户号 + */ + @ColumnWidth(20) + @ExcelProperty("备货状态") + private String stockupStatusName; + + + /** + * 租户号 + */ + @ColumnWidth(20) + @ExcelProperty("备货人员") + private String forkliftName; + + /** + * 租户号 + */ + @ColumnWidth(20) + @ExcelProperty("出库时间") + private Date outboundDate; + + /** + * 租户号 + */ + @ColumnWidth(20) + @ExcelProperty("备货时间") + private Date stockupDate; + + /** + * 租户号 + */ + @ColumnWidth(20) + @ExcelProperty("装车状态") + private String loadingStatus; + + /** + * 租户号 + */ + @ColumnWidth(20) + @ExcelProperty("签收状态") + private String reservationSigningStatus; + + /** + * 租户号 + */ + @ColumnWidth(20) + @ExcelProperty("配送状态") + private String driverSigning; + + /** + * 租户号 + */ + @ColumnWidth(20) + @ExcelProperty("文员复核状态") + private String signingStatus; + + + + +} diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/excel/DistributionDeliveryInventoryExcel.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/excel/DistributionDeliveryInventoryExcel.java new file mode 100644 index 000000000..7b4ddf6b7 --- /dev/null +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/excel/DistributionDeliveryInventoryExcel.java @@ -0,0 +1,140 @@ +/* + * 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; + +/** + * 配送装车中间表 视图实体类 + * + * @author TJJ + * @since 2023-06-16 + */ +@Data +@ColumnWidth(25) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class DistributionDeliveryInventoryExcel implements Serializable { + private static final long serialVersionUID = 1L; + + + /** + * 租户号 + */ + @ColumnWidth(20) + @ExcelProperty("入库批次号") + private String incomingBatch; + + /** + * 租户号 + */ + @ColumnWidth(20) + @ExcelProperty("订单自编号") + private String orderCode; + + /** + * 租户号 + */ + @ColumnWidth(20) + @ExcelProperty("商场名称") + private String marketName; + + /** + * 租户号 + */ + @ColumnWidth(20) + @ExcelProperty("品牌") + private String brandName; + + /** + * 租户号 + */ + @ColumnWidth(20) + @ExcelProperty("物料编码") + private String cargoNumber; + + /** + * 租户号 + */ + @ColumnWidth(20) + @ExcelProperty("物料名称") + private String descriptionGoods; + + /** + * 租户号 + */ + @ColumnWidth(20) + @ExcelProperty("物料规格") + private String cargoNorms; + + /** + * 租户号 + */ + @ColumnWidth(20) + @ExcelProperty("物料单位") + private String cargoUnit; + + /** + * 租户号 + */ + @ColumnWidth(20) + @ExcelProperty("计划出库数") + private String plannedQuantity; + + /** + * 租户号 + */ + @ColumnWidth(20) + @ExcelProperty("实际出库数") + private String loadingNumber; + + /** + * 租户号 + */ + @ColumnWidth(20) + @ExcelProperty("签收数量") + private String signedingNumber; + + /** + * 租户号 + */ + @ColumnWidth(20) + @ExcelProperty("备货数量") + private Integer readyStock; + + /** + * 租户号 + */ + @ColumnWidth(20) + @ExcelProperty("签收状态") + private String signingStatusName; + + /** + * 租户号 + */ + @ColumnWidth(20) + @ExcelProperty("备货状态") + private String stockUpStatusName; + + +} diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/excel/DistributionDeliveryOrderExcel.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/excel/DistributionDeliveryOrderExcel.java new file mode 100644 index 000000000..420df1a36 --- /dev/null +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/excel/DistributionDeliveryOrderExcel.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; + +/** + * 配送装车中间表 视图实体类 + * + * @author TJJ + * @since 2023-06-16 + */ +@Data +@ColumnWidth(25) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class DistributionDeliveryOrderExcel 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 materialName; + + /** + * 租户号 + */ + @ColumnWidth(20) + @ExcelProperty("包件总数") + private Integer totalNumber; + + /** + * 租户号 + */ + @ColumnWidth(20) + @ExcelProperty("在库数量") + private Integer handQuantity; + + /** + * 租户号 + */ + @ColumnWidth(20) + @ExcelProperty("计划数量") + private String readyStock; + + /** + * 租户号 + */ + @ColumnWidth(20) + @ExcelProperty("以备数量") + private Integer stockupNumber; + + /** + * 租户号 + */ + @ColumnWidth(20) + @ExcelProperty("装车数量") + private Integer loadingNumber; + + /** + * 租户号 + */ + @ColumnWidth(20) + @ExcelProperty("签收数量") + private String signingNumber; + + /** + * 租户号 + */ + @ColumnWidth(20) + @ExcelProperty("订单状态") + private String orderStatusName; + + /** + * 租户号 + */ + @ColumnWidth(20) + @ExcelProperty("收货单位") + private String consigneeUnit; + + /** + * 租户号 + */ + @ColumnWidth(20) + @ExcelProperty("运单收货人") + private String consigneePerson; + + /** + * 租户号 + */ + @ColumnWidth(20) + @ExcelProperty("运单收货地址") + private String consigneeAddress; + + /** + * 租户号 + */ + @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/DistributionDeliveryPackageExcel.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/excel/DistributionDeliveryPackageExcel.java new file mode 100644 index 000000000..e28ddcc7e --- /dev/null +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/excel/DistributionDeliveryPackageExcel.java @@ -0,0 +1,242 @@ +/* + * 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; + +/** + * 配送装车中间表 视图实体类 + * + * @author TJJ + * @since 2023-06-16 + */ +@Data +@ColumnWidth(25) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class DistributionDeliveryPackageExcel 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 String trainNumber; + + /** + * 租户号 + */ + @ColumnWidth(20) + @ExcelProperty("一级品") + private String firsts; + + /** + * 租户号 + */ + @ColumnWidth(20) + @ExcelProperty("二级品") + private String second; + + /** + * 租户号 + */ + @ColumnWidth(20) + @ExcelProperty("三级品") + private String thirdProduct; + + /** + * 租户号 + */ + @ColumnWidth(20) + @ExcelProperty("入库时间") + private Date warehouseEntryTimeEnd; + + /** + * 租户号 + */ + @ColumnWidth(20) + @ExcelProperty("当前状态") + private String orderPackageStatusName; + + /** + * 租户号 + */ + @ColumnWidth(20) + @ExcelProperty("冻结状态") + private String orderPackageFreezeStatusName; + + /** + * 租户号 + */ + @ColumnWidth(20) + @ExcelProperty("上架状态") + private String orderPackageGroundingStatusName; + + /** + * 租户号 + */ + @ColumnWidth(20) + @ExcelProperty("备货状态") + private String orderPackageStockupStatusName; + + + /** + * 租户号 + */ + @ColumnWidth(20) + @ExcelProperty("预约状态") + private String orderPackageReservationStatusName; + + /** + * 租户号 + */ + @ColumnWidth(20) + @ExcelProperty("装车状态") + private String orderPackageLoadingStatusName; + + /** + * 租户号 + */ + @ColumnWidth(20) + @ExcelProperty("包件数量") + private Integer quantity; + + /** + * 租户号 + */ + @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; + + +} diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryInfoMapper.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryInfoMapper.java index b5d07e4f7..934c169bc 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryInfoMapper.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryInfoMapper.java @@ -79,7 +79,11 @@ public interface DistributionDeliveryInfoMapper extends BaseMapper<DistributionD * @return */ List<DistributionDeliveryInfoVO> selectcustomList(@Param("id") Long id); + List<DistributionDeliveryInfoVO> selectClientList(@Param("id") Long id, @Param("param")Map<String,Object> param); + + + List<DistributionDeliveryInfoVO> selectClientListByDeliveryId(@Param("id") Long id); /** * 从预约客户查询包条自定义分页 * @param page @@ -111,18 +115,33 @@ public interface DistributionDeliveryInfoMapper extends BaseMapper<DistributionD * @return */ List<DistributionStockListVO> selectDistributionDeliveryinventoryPage(IPage<DistributionStockListVO> page,@Param("param") DistributionDeliveryInfoDTO distributionDeliveryInfoDTO); + + /** + * 通过配送Id查询库存 + * + * @return + */ + List<DistributionStockListVO> selectDistributionDeliveryinventoryByDeliveryId(@Param("deliveryId") Long deliveryId); /** * 通过配送查询订单 * * @return */ List<DistributionStockArticleVO> selectDistributionDeliveryOrderPage(IPage<DistributionStockArticleVO> page,@Param("param") Map<String,Object> distributionStockArticle); + + + /** + * 通过配送Id查询订单 + * + * @return + */ + List<DistributionStockArticleVO> selectDistributionDeliveryOrderPageByDeliveryId(@Param("deliveryId")Long deliveryId); /** * App-通过配送查询客户信息 * * @return */ - List<DistributionAppReservationVO> selectAppcustomList( Long id); + List<DistributionAppReservationVO> selectAppcustomList(Long id); /** * App-通过客户查询订单 * diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryInfoMapper.xml b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryInfoMapper.xml index 2b5c82d2e..315ce0c24 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryInfoMapper.xml +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionDeliveryInfoMapper.xml @@ -282,6 +282,44 @@ lds.is_deleted =0 and lddl.id = #{param.deliveryId} </where> </select> + <select id="selectDistributionDeliveryinventoryByDeliveryId" resultType="com.logpm.distribution.vo.DistributionStockListVO"> + select + ldsl.sku sku, + ldsl.incoming_batch AS incomingBatch, + ldsl.order_code AS order_code, + ldsl.warehouse_name AS warehouseName, + ldsl.market_name AS marketName, + ldsl.brand_name AS brandName, + ldrsl.reservation_num AS plannedQuantity, + ldsl.description_goods descriptionGoods, + ldsl.cargo_unit cargoUnit, + ( SELECT + sum(ldrsl.reservation_num) + FROM + logpm_distribution_reservation_stocklist ldrsl + WHERE + ldrsl.stocklist_id = ldsl.id) deliveryNumber, + ( + SELECT + COALESCE(count(*), 0) + FROM + logpm_distribution_stock lds + WHERE + ldsl.id = lds.stock_list_id + ) readyStock, + ( SELECT COALESCE ( count(*), 0 ) FROM logpm_dis_stock_list_detail ldsld WHERE ldsl.id = ldsld.stock_list_id AND ldrsl.reservation_id = ldsld.reservation_id AND ldsld.stock_locking_status = '20' ) AS loadedinNumber, + ( SELECT COALESCE ( count(*), 0 ) FROM logpm_dis_stock_list_detail ldsld WHERE ldsl.id = ldsld.stock_list_id AND ldrsl.reservation_id = ldsld.reservation_id AND ldsld.stock_signfo_status = '20' ) AS signedinNumber, + ldsl.storage_location goodsAllocation, + ldsl.cargo_number cargoNumber + FROM + logpm_distribution_reservation_stocklist ldrsl + JOIN logpm_distribution_signfor lds on lds.reservation_id = ldrsl.reservation_id + JOIN logpm_distribution_delivery_list lddl on lddl.id = lds.delivery_id + join logpm_distribution_stock_list ldsl on ldrsl.stocklist_id = ldsl.id + <where> + lds.is_deleted =0 and lddl.id = #{deliveryId} + </where> + </select> <select id="selectDistributionDeliveryOrderPage" resultType="com.logpm.distribution.vo.DistributionStockArticleVO"> SELECT distinct ldsa.order_code orderCode, @@ -391,6 +429,79 @@ </where> + </select> + <select id="selectDistributionDeliveryOrderPageByDeliveryId" resultType="com.logpm.distribution.vo.DistributionStockArticleVO"> + SELECT + distinct ldsa.order_code orderCode, + ldsa.consignee_unit, + ldsa.id, + ldsa.consignee_person, + ldsa.consignee_address, + ldsa.consignee_mobile, + ldsa.order_status, + ldsa.customer_name, + ldsa.customer_telephone, + ldsa.customer_address, + ldsa.total_number, + ldsa.hand_quantity, + ldsa.waybill_number, + ldsa.service_number, + ldrs.reservation_num AS deliveryNumber, + ( + SELECT DISTINCT + group_concat( DISTINCT ldpl.material_name ) AS materialName + FROM + logpm_distribution_parcel_list ldpl + WHERE + ldpl.stock_article_id = ldsa.id + GROUP BY + ldpl.stock_article_id + ) AS materialName, +<!-- (SELECT COUNT(*) from logpm_distribution_reservation_package ldrp WHERE ldrp.stock_article_id = ldsa.id ) deliveryNumber,--> + ( + SELECT + count(*) + FROM + logpm_distribution_reservation_package ldrp + WHERE + ldrp.reservation_id = lds.reservation_id and ldrp.packet_bar_status != 2 + ) readyStock, + ( + SELECT + GROUP_CONCAT( ldpl.pallet SEPARATOR ',' ) + FROM + logpm_distribution_parcel_list ldpl + JOIN logpm_distribution_reservation_package ldrp ON ldrp.parce_list_id = ldpl.id + WHERE + ldrp.reservation_id = lds.reservation_id + ) pallet, + ( + SELECT + GROUP_CONCAT( ldpl.goods_allocation SEPARATOR ',' ) + FROM + logpm_distribution_parcel_list ldpl + JOIN logpm_distribution_reservation_package ldrp ON ldrp.parce_list_id = ldpl.id + WHERE + ldrp.reservation_id = lds.reservation_id + ) goodsAllocation, + ldrs.stock_article_status stockArticleState, + ( select sum(loaded_nub) FROM + logpm_distribution_loadscan AS ldl + WHERE ldl.order_id=ldrs.stock_article_id and ldl.scan_status != 1 and ldl.reservation_id = lds.reservation_id + ) AS loadingNumber, + ( select count(*) FROM + logpm_distribution_stock AS lstock + WHERE lstock.stock_article=ldrs.stock_article_id + ) AS stockupNumber + FROM + logpm_distribution_signfor lds + JOIN logpm_distribution_reservation_stockarticle ldrs ON lds.reservation_id = ldrs.reservation_id + JOIN logpm_distribution_delivery_list lddl ON lddl.id = lds.delivery_id + JOIN logpm_distribution_stock_article ldsa ON ldrs.stock_article_id = ldsa.id + <where> + lddl.id = #{deliveryId} AND ldrs.stock_article_status != 2 + </where> + </select> <select id="selectAppcustomList" resultType="com.logpm.distribution.vo.app.DistributionAppReservationVO"> SELECT @@ -712,4 +823,60 @@ FROM </if> </where> </select> + + <select id="selectClientListByDeliveryId" resultType="com.logpm.distribution.vo.DistributionDeliveryInfoVO"> + SELECT + ldr.reservation_num, + ldr.is_urgent isUrgent, + ldr.mall_name mallName, + ldr.reservation_code reservationCode, + ldr.remarks remarks, + ldr.loading_status loadingStatus, + ldr.signing_status reservationSigningStatus, + ldr.receiving_unit receivingUnit, + ldr.consignee consignee, + lds.train_number trainNumber, + ldr.delivery_address deliveryAddress, + ldr.delivery_phone deliveryPhone, + ldr.waybill_no waybillNo, + ldr.reservation_num packageNub, + ldr.reservation_stock_list_num reservationStockListNum, + lds.loaded_number loadedNub, + lds.loadedin_number inventoryNub, + (lds.received_quantity + lds.receivedin_quantity) receivedQuantity, + lds.is_have_abnormal_package isHaveAbnormalPackage, + lds.signee_name signeeName, + (SELECT + ldss.forklift_name + FROM + logpm_distribution_stockup_info AS ldsi + LEFT JOIN logpm_distribution_stockup AS ldss ON ldsi.stockup_id = ldss.id + WHERE + ldsi.reservation_id = lds.reservation_id + ) AS forkliftName, + CASE + WHEN ldr.stockup_status ='10' THEN '待指派' + WHEN ldr.stockup_status ='20' THEN '待备货' + WHEN ldr.stockup_status ='30' THEN '备货中' + WHEN ldr.stockup_status ='40' THEN '备货完成' + END stockupStatusName, + CASE + WHEN ldr.is_urgent ='1' THEN '否' + else '是' + END isUrgentName, + CASE + WHEN lds.signing_status ='1' THEN '待审核' + else '已审核' + END signingStatus, + CASE + WHEN lds.driver_signing ='1' THEN '未完成' + else '已完成' + END driverSigning + FROM + logpm_distribution_signfor lds + JOIN logpm_distribution_reservation ldr ON ldr.id = lds.reservation_id + <where> + lds.is_deleted = 0 and lds.delivery_id = #{id} and ldr.reservation_status != 40 AND (ldr.reservation_num + ldr.reservation_stock_list_num) > 0 + </where> + </select> </mapper> diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.java index c5d400b04..f87ac952a 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.java @@ -124,6 +124,14 @@ public interface DistributionReservationMapper extends BaseMapper<DistributionRe */ IPage<DistributionParcelListEntity> getReservationPackage(IPage<DistributionParcelListEntity> page,@Param("orderIds") List<Long> orderIds,@Param("param")Map<String,Object> param); + /** + * 查询预约单下指定订单包件列表 + * @param orderIds + * @param param + * @return + */ + List<DistributionParcelListEntity> getReservationPackageByDeliveryId(@Param("orderIds") List<Long> orderIds,@Param("deliveryId")Long deliveryId); + /** * 删除预约单 * @param id diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.xml b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.xml index a5843c2d9..3a6b92e9f 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.xml +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionReservationMapper.xml @@ -799,6 +799,26 @@ </if> </where> </select> + <select id="getReservationPackageByDeliveryId" resultType="com.logpm.distribution.entity.DistributionParcelListEntity"> + SELECT + ldpl.*, + ldpl.quantity AS reservationNum + FROM + logpm_distribution_signfor AS lds + LEFT JOIN logpm_distribution_reservation AS ldr ON lds.reservation_id = ldr.id + LEFT JOIN logpm_distribution_reservation_stockarticle AS ldsa ON ldr.id = ldsa.reservation_id + LEFT JOIN logpm_distribution_reservation_package AS ldrp ON ldrp.reservation_id = ldsa.reservation_id and ldrp.stock_article_id = ldsa.stock_article_id + LEFT JOIN logpm_distribution_parcel_list AS ldpl ON ldrp.parce_list_id = ldpl.id + <where> + lds.delivery_id = #{deliveryId} and ldrp.packet_bar_status in ('1','3') and ldpl.id is not null + <if test="orderIds !=null and orderIds!= ''"> + and ldrp.stock_article_id in + <foreach collection="orderIds" item="id" separator="," close=")" open="("> + #{id} + </foreach> + </if> + </where> + </select> <select id="selectPackageByReservationAndStockArticle" resultType="com.logpm.distribution.entity.DistributionParcelListEntity"> SELECT @@ -1777,7 +1797,6 @@ LEFT JOIN logpm_distribution_loadscan As ldl ON ldrzp.reservation_id = ldl.reservation_id AND ldl.package_id = ldpl.id AND ldl.scan_status != 1 AND ldl.is_deleted =0 <where> ldrzp.reservation_id = #{param.reservationId} AND ldrzp.zero_package_status in ('1','3') - </where> </select> diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillLadingMapper.xml b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillLadingMapper.xml index d5ee6af23..21a6b281f 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillLadingMapper.xml +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillLadingMapper.xml @@ -492,9 +492,9 @@ </select> <select id="selectBillLadingPlanNum" resultType="java.lang.Integer"> SELECT( - IF((SELECT sum(packet_number) FROM logpm_distrilbution_bill_package WHERE bill_lading_id = #{billLadingId} AND packet_bar_status != 3) IS NULL,0,(SELECT sum(packet_number) FROM logpm_distrilbution_bill_package WHERE bill_lading_id = #{billLadingId} AND packet_bar_status != 3)) + IF((SELECT sum(packet_number) FROM logpm_distrilbution_bill_package WHERE bill_lading_id = #{billLadingId} AND packet_bar_status != 3) IS NULL,0,(SELECT sum(packet_number) FROM logpm_distrilbution_bill_package WHERE bill_lading_id = #{billLadingId} AND packet_bar_status != 2)) + - IF((SELECT sum(quantity) FROM logpm_distribution_delivery_details WHERE bill_lading_id = #{billLadingId} AND inventory_status != 3) IS NULL ,0,(SELECT sum(quantity) FROM logpm_distribution_delivery_details WHERE bill_lading_id = #{billLadingId} AND inventory_status != 3) ) ) + IF((SELECT sum(quantity) FROM logpm_distribution_delivery_details WHERE bill_lading_id = #{billLadingId} AND inventory_status != 3) IS NULL ,0,(SELECT sum(quantity) FROM logpm_distribution_delivery_details WHERE bill_lading_id = #{billLadingId} AND inventory_status != 2) ) ) </select> <select id="selectBillLadingLoading" resultType="java.lang.Integer"> SELECT sum(quantity) FROM logpm_distribution_bill_lading_scan WHERE bill_lading_id =#{billLadingId} AND is_deleted = 0 diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionDeliveryInfoService.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionDeliveryInfoService.java index 34b96820c..ebddd1e65 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionDeliveryInfoService.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionDeliveryInfoService.java @@ -78,6 +78,14 @@ public interface IDistributionDeliveryInfoService extends BaseService<Distributi * @return */ IPage<DistributionStockListVO> selectDistributionDeliveryinventory(IPage<DistributionStockListVO> page, DistributionDeliveryInfoDTO distributionDeliveryInfoDTO); + + /** + * 从配送Id查询库存品 + * + * @param deliveryId + * @return + */ + List<DistributionStockListVO> selectDistributionDeliveryinventoryByDeliveryId(Long deliveryId); /** * 从配送查看订单 * @@ -85,6 +93,14 @@ public interface IDistributionDeliveryInfoService extends BaseService<Distributi * @return */ IPage<DistributionStockArticleVO> selectDistributionDeliveryorder(IPage<DistributionStockArticleVO> page, Map<String, Object> distributionStockArticle); + + /** + * 从配送查看订单 + * + * @param page + * @return + */ + List<DistributionStockArticleVO> selectDistributionDeliveryorderByDeliveryId(Map<String, Object> distributionStockArticle); /** * 从客户查看订单 * diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionDeliveryListService.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionDeliveryListService.java index 1fdec77d9..6a7882935 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionDeliveryListService.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionDeliveryListService.java @@ -20,6 +20,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.logpm.aftersales.vo.AftersalesAbnormalPackageVO; import com.logpm.distribution.bean.Resp; +import com.logpm.distribution.dto.DistributionDeliveryExcelDTO; import com.logpm.distribution.dto.DistributionDeliveryInfoDTO; import com.logpm.distribution.dto.DistributionDeliveryListDTO; import com.logpm.distribution.dto.app.DistributionAppDeliveryListDTO; @@ -193,6 +194,8 @@ public interface IDistributionDeliveryListService extends BaseService<Distributi IPage<DistributionParcelListVO> getPackageListByDeliverylistId(IPage<DistributionParcelListEntity> page, Map<String,Object> distributionDeliveryInfoDTO) throws ParseException; + List<DistributionParcelListVO> getAllPackageListByDeliverylistId(Long deliveryId) throws ParseException; + /** * 查询商配计划科操作订单列表 * @param params @@ -432,6 +435,13 @@ public interface IDistributionDeliveryListService extends BaseService<Distributi */ void maintenanceDeliveryInfoAndDeliveryStatus(String deliveryIds); + /** + * 配送详情导出数据组装 + * @param deliveryId + * @return + */ + DistributionDeliveryExcelDTO exportDistributionDeliveryListDetail(Long deliveryId); + /** * 查询签收预约客户包件信息 diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAsyncServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAsyncServiceImpl.java index 6da68f743..41e50ac87 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAsyncServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAsyncServiceImpl.java @@ -1820,18 +1820,20 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService { //查询包件 List<DistributionParcelListEntity> distributionParcelListEntities = distributionParcelListService.listByIds(ids); List<Long> packageIds = distributionParcelListEntities.stream().filter(f -> OrderPackageLoadingStatusConstant.yizhuangche.getValue().equals(f.getOrderPackageLoadingStatus())|| !OrderPackageStatusConstant.yiqianshou.getValue().equals(f.getOrderPackageStatus())).map(DistributionParcelListEntity::getId).collect(Collectors.toList()); - distributionParcelListService.update(new UpdateWrapper<DistributionParcelListEntity>().lambda() - .set(DistributionParcelListEntity::getOrderPackageReservationStatus,OrderPackageReservationStatusConstant.daiyuyue.getValue()) - .set(DistributionParcelListEntity::getOrderPackageLoadingStatus,OrderPackageLoadingStatusConstant.weizhuancghe.getValue()) - .set(DistributionParcelListEntity::getOrderPackageStatus,OrderPackageStatusConstant.yiruku.getValue()) - .set(DistributionParcelListEntity::getOrderPackageStockupStatus,OrderPackageStockupStatusConstant.daibeihuo.getValue()) - .in(DistributionParcelListEntity::getId,packageIds) - ); - billPackageService.update(new UpdateWrapper<DistrilbutionBillPackageEntity>().lambda() - .set(DistrilbutionBillPackageEntity::getPacketBarStatus,2) - .eq(DistrilbutionBillPackageEntity::getBillLadingId,l) - .in(DistrilbutionBillPackageEntity::getParceListId,packageIds) - ); + if (Func.isNotEmpty(packageIds)){ + distributionParcelListService.update(new UpdateWrapper<DistributionParcelListEntity>().lambda() + .set(DistributionParcelListEntity::getOrderPackageReservationStatus,OrderPackageReservationStatusConstant.daiyuyue.getValue()) + .set(DistributionParcelListEntity::getOrderPackageLoadingStatus,OrderPackageLoadingStatusConstant.weizhuancghe.getValue()) + .set(DistributionParcelListEntity::getOrderPackageStatus,OrderPackageStatusConstant.yiruku.getValue()) + .set(DistributionParcelListEntity::getOrderPackageStockupStatus,OrderPackageStockupStatusConstant.daibeihuo.getValue()) + .in(DistributionParcelListEntity::getId,packageIds) + ); + billPackageService.update(new UpdateWrapper<DistrilbutionBillPackageEntity>().lambda() + .set(DistrilbutionBillPackageEntity::getPacketBarStatus,2) + .eq(DistrilbutionBillPackageEntity::getBillLadingId,l) + .in(DistrilbutionBillPackageEntity::getParceListId,packageIds) + ); + } String collect = distributionParcelListEntities.stream().map(DistributionParcelListEntity::getOrderCode).distinct().collect(Collectors.joining(",")); distributionStockArticleService.maintenanceOrderInfo(collect,warehouseId); //维护自提单订单信息 diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryInfoServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryInfoServiceImpl.java index 7d003ae84..ddf8adf9c 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryInfoServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryInfoServiceImpl.java @@ -168,11 +168,16 @@ public class DistributionDeliveryInfoServiceImpl extends BaseServiceImpl<Distrib @Override public IPage<DistributionStockListVO> selectDistributionDeliveryinventory(IPage<DistributionStockListVO> page, DistributionDeliveryInfoDTO distributionDeliveryInfoDTO) { - List<DistributionStockListVO> distributionDeliveryInfoVOS = baseMapper.selectDistributionDeliveryinventoryPage(page, distributionDeliveryInfoDTO); return page.setRecords(distributionDeliveryInfoVOS); } + @Override + public List<DistributionStockListVO> selectDistributionDeliveryinventoryByDeliveryId(Long deliveryId) { + List<DistributionStockListVO> distributionDeliveryInfoVOS = baseMapper.selectDistributionDeliveryinventoryByDeliveryId(deliveryId); + return distributionDeliveryInfoVOS; + } + @Override public IPage<DistributionStockArticleVO> selectDistributionDeliveryorder(IPage<DistributionStockArticleVO> page, Map<String, Object> distributionStockArticle) { List<DistributionStockArticleVO> distributionDeliveryInfoVOS = baseMapper.selectDistributionDeliveryOrderPage(page, distributionStockArticle); @@ -233,6 +238,66 @@ public class DistributionDeliveryInfoServiceImpl extends BaseServiceImpl<Distrib return page.setRecords(distributionDeliveryInfoVOS); } + public List<DistributionStockArticleVO> selectDistributionDeliveryorderByDeliveryId(Map<String, Object> distributionStockArticle) { + String deliveryId = (String) distributionStockArticle.get("deliveryId"); + List<DistributionStockArticleVO> distributionDeliveryInfoVOS = baseMapper.selectDistributionDeliveryOrderPageByDeliveryId(Long.parseLong(deliveryId)); + List<DistributionLoadscanEntity> loadList = distributionLoadscanService.list(Wrappers.<DistributionLoadscanEntity>query().lambda() + .eq(DistributionLoadscanEntity::getDeliveryId, distributionStockArticle.get("deliveryId")) + ); + Map<Long, List<DistributionLoadscanEntity>> orderLoadMap; + if (!Objects.isNull(loadList)) { + orderLoadMap = loadList.stream().collect(Collectors.groupingBy(DistributionLoadscanEntity::getOrderId)); + } else { + orderLoadMap = null; + } + distributionDeliveryInfoVOS.forEach(s -> { + //匹配当前配送任务签收数量 + s.setSigningNumber(0); + if (Func.isNotEmpty(orderLoadMap)) { + List<DistributionLoadscanEntity> orderLoading = orderLoadMap.get(s.getId()); + if (Func.isNotEmpty(orderLoading)) { + int signingNum = orderLoading.stream().mapToInt(DistributionLoadscanEntity::getReceivedQuantity).sum(); + s.setSigningNumber(signingNum); + } + } + switch (s.getOrderStatus()) { + case "10": + s.setOrderStatusName(OrderStatusConstant.bufenruku.getName()); + break; + case "20": + s.setOrderStatusName(OrderStatusConstant.ruku.getName()); + + break; + case "30": + s.setOrderStatusName(OrderStatusConstant.bufenchuku.getName()); + + break; + case "40": + s.setOrderStatusName(OrderStatusConstant.chuku.getName()); + + break; + case "70": + s.setOrderStatusName(OrderStatusConstant.bufenqianshou.getName()); + break; + case "80": + s.setOrderStatusName(OrderStatusConstant.qianshou.getName()); + break; + default: + log.info("selectDistributionDeliveryorder 不满足匹配值 s.getOrderStatus() {}",s.getOrderStatus()); + break; + } + }); +// for (DistributionStockArticleVO distributionDeliveryInfoVO : distributionDeliveryInfoVOS) { +// //查询签收数量 +// //查询装车数量 +//// distributionDeliveryInfoVO.get +//// distributionDeliveryInfoVO.setLoadingNumber(); +//// distributionLoadscanService.list(Wrappers.query().lambda().eq()) +//// DistributionStockArticleWrapper.build().buildVoInfor(distributionDeliveryInfoVO); +// } + return distributionDeliveryInfoVOS; + } + @Override public List<DistributionAppStockArticleVO> selectDistributionAppDeliveryorder(DistributionAppDeliveryListDTO distributionAppDeliveryListDTO) { diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java index f1d203f29..32cdc4671 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java @@ -4394,6 +4394,105 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib } + @Override + public List<DistributionParcelListVO> getAllPackageListByDeliverylistId(Long deliveryId) throws ParseException { +// if (Func.isEmpty(distributionDeliveryInfoDTO.get("deliveryId"))) { +// log.info("参数缺失deliveryId"); +// return null; +// } +// Long deliveryId = Long.parseLong((String) distributionDeliveryInfoDTO.get("deliveryId")); + //查询零担订单包件 +// List<DistributionParcelNumberVO> parcelNumberVOS = baseMapper.getZeroPackageListByDeliveryId(distributionDeliveryInfoDTO.getDeliveryId()); + List<DistributionStockArticleVO> deliveryStockArticleInfo = baseMapper.getDeliveryStockArticleInfo(deliveryId); + if (Func.isEmpty(deliveryStockArticleInfo)) { + log.error("配送任务订单查询异常:{}", deliveryStockArticleInfo); + return null; + } + List<DistributionReservationStockarticleEntity> reservationStockarticleEntityList = baseMapper.getReservationStockArticleByDeliveryId(deliveryId); + if (Func.isEmpty(reservationStockarticleEntityList)) { + log.error("配送任务订单查询异常:{}", reservationStockarticleEntityList); + return null; + } +// List<DistributionParcelListVO> parcelListVOIPage = new ArrayList<>(); + List<DistributionLoadscanEntity> loadscanEntities = distributionLoadscanMapper.selectList(Wrappers.<DistributionLoadscanEntity>query().lambda().eq(DistributionLoadscanEntity::getDeliveryId, deliveryId).ne(DistributionLoadscanEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue())); + Map<Long, DistributionLoadscanEntity> loadingDataMap = null; + if (Func.isNotEmpty(loadscanEntities)) { + loadingDataMap = loadscanEntities.stream().collect(Collectors.toMap(DistributionLoadscanEntity::getPackageId, Function.identity(), (k1, k2) -> k2)); + } + SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + ArrayList<DistributionParcelListVO> distributionParcelListVOS = new ArrayList<>(); + if (Func.isNotEmpty(reservationStockarticleEntityList)) { + List<Long> orderIds = reservationStockarticleEntityList.stream().filter(order -> order.getIsZero().equals(IsOrNoConstant.no.getValue())).map(DistributionReservationStockarticleEntity::getStockArticleId).collect(Collectors.toList()); + if (Func.isNotEmpty(orderIds)) { + //查询该客户的非零但订单包间 + List<DistributionParcelListEntity> parcelListEntityList = distributionReservationMapper.getReservationPackageByDeliveryId(orderIds, deliveryId); +// parcelListVOIPage.setTotal(parcelListEntityList.getTotal()); +// List<DistributionParcelListEntity> parcelListEntityList = distributionReservationMapper.getReservationPackageNew(distributionDeliveryInfoDTO); + log.info(">>>>>> parcelListEntityList {}", parcelListEntityList); + List<DistributionParcelListVO> parcelListVOList = DistributionParcelListWrapper.build().listVO(parcelListEntityList); + for (DistributionParcelListVO distributionParcelListVO : parcelListVOList) { + log.info(">>>>>> distributionParcelListVO {}", distributionParcelListVO); + if (Func.isNotEmpty(loadingDataMap)) { + DistributionLoadscanEntity loadscanEntity = loadingDataMap.get(distributionParcelListVO.getId()); + log.info(">>>>>> loadscanEntity {}", loadscanEntity); + + if (Func.isNotEmpty(loadscanEntity)) { + if (loadscanEntity.getSignforState().equals(LoadScanSigningStatusConstant.yiqianshou.getValue())) { + distributionParcelListVO.setSigningNub(loadscanEntity.getReceivedQuantity()); + } + if (Func.isNotEmpty(loadscanEntity.getSigningTime())) { + distributionParcelListVO.setSigningTime(loadscanEntity.getSigningTime()); + } + if (Func.isNotEmpty(loadscanEntity.getScanUser())) { + distributionParcelListVO.setScanUser(loadscanEntity.getScanUser()); + } + if (Func.isNotEmpty(loadscanEntity.getDriverName())) { + distributionParcelListVO.setDriverName(loadscanEntity.getDriverName()); + } + if (Func.isNotEmpty(loadscanEntity.getLoadedNub())) { + distributionParcelListVO.setLoadingNub(loadscanEntity.getLoadedNub()); + } + if (Func.isNotEmpty(loadscanEntity.getScanTime())) { + distributionParcelListVO.setLoadingTime(loadscanEntity.getScanTime()); + } + if (Func.isNotEmpty(loadscanEntity.getSigningUser())) { + distributionParcelListVO.setSigningUser(loadscanEntity.getSigningUser()); + } + if (Func.isNotEmpty(loadscanEntity.getScanStatus())) { + switch (loadscanEntity.getScanStatus()) { + case "1": + distributionParcelListVO.setScanStatus(LoadingStatusConstant.quxiao.getName()); + break; + case "2": + distributionParcelListVO.setScanStatus(LoadingStatusConstant.saomiao.getName()); + break; + case "3": + distributionParcelListVO.setScanStatus(LoadingStatusConstant.queren.getName()); + break; + case "4": + distributionParcelListVO.setScanStatus(LoadingStatusConstant.yijianzhuangche.getName()); + break; + case "5": + distributionParcelListVO.setScanStatus(LoadingStatusConstant.buluzhuangche.getName()); + break; + } + distributionParcelListVO.setLoadingNub(loadscanEntity.getLoadedNub()); + } + } + } + log.info(">>>>>> distributionParcelListVO2 {}", distributionParcelListVO); + + distributionParcelListVOS.add(distributionParcelListVO); + } + } + } else { + //可能出现配送任务下的所有客户都是库存品 + log.info("#############此配送任务下无订单信息,deliveryId:{}", deliveryId); + } + return distributionParcelListVOS; + } + + @Override public IPage<DistributionStockArticleVO> selectDiscussStockArticleInfoList(Map<String, Object> params, Query query, Long deliveryListId) { IPage<DistributionStockArticleVO> page = Condition.getPage(query); @@ -6103,40 +6202,48 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib } Long deliveryId = Long.parseLong((String) distributionReservationDTO.get("deliveryId")); List<DistributionDeliveryInfoVO> customList = distributionDeliveryInfoMapper.selectClientList(deliveryId, distributionReservationDTO); + List<DistributionDeliveryInfoVO> distributionDeliveryInfoVOS = null; if (!customList.isEmpty()) { - customList.forEach(c -> { - if (Func.isNotEmpty(c.getLoadingStatus())) { - switch (c.getLoadingStatus()) { - case "10": - c.setLoadingStatus(ReservationLoadingStatusConstant.daizhuangche.getName()); - break; - case "20": - c.setLoadingStatus(ReservationLoadingStatusConstant.bufenzhuangche.getName()); - break; - case "30": - c.setLoadingStatus(ReservationLoadingStatusConstant.yizhuangche.getName()); - break; - } + distributionDeliveryInfoVOS = handleClient(customList); + } + return page.setRecords(distributionDeliveryInfoVOS); + } + + public List<DistributionDeliveryInfoVO> handleClient(List<DistributionDeliveryInfoVO> customList){ + customList.forEach(c -> { + if (Func.isNotEmpty(c.getLoadingStatus())) { + switch (c.getLoadingStatus()) { + case "10": + c.setLoadingStatus(ReservationLoadingStatusConstant.daizhuangche.getName()); + break; + case "20": + c.setLoadingStatus(ReservationLoadingStatusConstant.bufenzhuangche.getName()); + break; + case "30": + c.setLoadingStatus(ReservationLoadingStatusConstant.yizhuangche.getName()); + break; } - if (Func.isNotEmpty(c.getReservationSigningStatus())) { - switch (c.getReservationSigningStatus()) { - case "10": - c.setReservationSigningStatus(ReservationSigningStatusConstant.daiqianshou.getName()); - break; - case "20": - c.setReservationSigningStatus(ReservationSigningStatusConstant.bufenqianshou.getName()); - break; - case "30": - c.setReservationSigningStatus(ReservationSigningStatusConstant.yiqianshou.getName()); - break; - } + } + if (Func.isNotEmpty(c.getReservationSigningStatus())) { + switch (c.getReservationSigningStatus()) { + case "10": + c.setReservationSigningStatus(ReservationSigningStatusConstant.daiqianshou.getName()); + break; + case "20": + c.setReservationSigningStatus(ReservationSigningStatusConstant.bufenqianshou.getName()); + break; + case "30": + c.setReservationSigningStatus(ReservationSigningStatusConstant.yiqianshou.getName()); + break; } - }); - } - return page.setRecords(customList); + } + }); + return customList; } + + public Map<String, String> getDriverCar(String kind, Long deliveryListEntityId) { Map<String, String> map = new HashMap<>(); String dirverName = null; @@ -6898,6 +7005,38 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib } + /** + * @param deliveryId + * @return + */ + @Override + public DistributionDeliveryExcelDTO exportDistributionDeliveryListDetail(Long deliveryId) { +// map.put("deliveryId",deliveryId); +// Map<String,Object> EXResource = new HashMap<>(); + + DistributionDeliveryExcelDTO distributionDeliveryExcelDTO = new DistributionDeliveryExcelDTO(); + try { + List<DistributionDeliveryInfoVO> distributionDeliveryInfoVOS = distributionDeliveryInfoMapper.selectClientListByDeliveryId(deliveryId); + List<DistributionDeliveryInfoVO> deliveryInfoVOS = handleClient(distributionDeliveryInfoVOS); + distributionDeliveryExcelDTO.setDeliveryInfoVOS(deliveryInfoVOS); +// EXResource.put("client",deliveryInfoVOS); + List<DistributionStockArticleVO> distributionStockArticleVOS = distributionDeliveryInfoMapper.selectDistributionDeliveryOrderPageByDeliveryId(deliveryId); + distributionDeliveryExcelDTO.setDistributionStockArticleVOS(distributionStockArticleVOS); +// EXResource.put("order",distributionStockArticleVOS); + List<DistributionStockListVO> distributionStockListVOS = distributionDeliveryInfoMapper.selectDistributionDeliveryinventoryByDeliveryId(deliveryId); + distributionDeliveryExcelDTO.setDistributionStockListVOS(distributionStockListVOS); +// EXResource.put("inventory",distributionStockListVOS); + List<DistributionParcelListVO> packageListByDeliverylistId = distributionDeliveryListService.getAllPackageListByDeliverylistId(deliveryId); +// EXResource.put("package",packageListByDeliverylistId); + distributionDeliveryExcelDTO.setPackageListByDeliverylistId(packageListByDeliverylistId); + + } catch (ParseException e) { + throw new RuntimeException(e); + } +// EXResource.put("package",packageListByDeliverylistId); + return distributionDeliveryExcelDTO; + } + @Override @Transactional public void maintenanceDeliveryInfo(Long deliveryId) {