From daeb1496d4df951fb272f25d793dc9dca3e1e131 Mon Sep 17 00:00:00 2001 From: "pref_mail@163.com" <123456> Date: Tue, 21 Nov 2023 23:25:55 +0800 Subject: [PATCH] =?UTF-8?q?1.=E8=87=AA=E6=8F=90=E5=96=AE=E6=89=93=E5=8D=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/constant/ModuleNameConstant.java | 2 +- .../PrintTemplateStatusConstant.java | 8 +- .../entity/BasicdataWarehouseEntity.java | 3 +- .../entity/DistributionStockEntity.java | 4 +- .../entity/DistrilbutionBillLadingEntity.java | 3 + .../DistrilbutionBillLadingController.java | 3 + .../mapper/DistributionParcelListMapper.java | 13 + .../mapper/DistributionParcelListMapper.xml | 23 ++ .../mapper/DistributionStockMapper.java | 2 +- .../DistributionDeliveryListServiceImpl.java | 275 ++++++++++++++++-- .../com/logpm/distribution/TestService.java | 2 +- 11 files changed, 311 insertions(+), 27 deletions(-) diff --git a/blade-biz-common/src/main/java/org/springblade/common/constant/ModuleNameConstant.java b/blade-biz-common/src/main/java/org/springblade/common/constant/ModuleNameConstant.java index 95746ccec..39aaf8d73 100644 --- a/blade-biz-common/src/main/java/org/springblade/common/constant/ModuleNameConstant.java +++ b/blade-biz-common/src/main/java/org/springblade/common/constant/ModuleNameConstant.java @@ -8,7 +8,7 @@ public interface ModuleNameConstant { /** * 如果不需要 "" */ - public static final String DEVAUTH =""; + public static final String DEVAUTH ="-pref"; /** * 工厂对接服务名称 diff --git a/blade-biz-common/src/main/java/org/springblade/common/constant/printTemplate/PrintTemplateStatusConstant.java b/blade-biz-common/src/main/java/org/springblade/common/constant/printTemplate/PrintTemplateStatusConstant.java index 2527ae6ad..21408f174 100644 --- a/blade-biz-common/src/main/java/org/springblade/common/constant/printTemplate/PrintTemplateStatusConstant.java +++ b/blade-biz-common/src/main/java/org/springblade/common/constant/printTemplate/PrintTemplateStatusConstant.java @@ -8,7 +8,7 @@ package org.springblade.common.constant.printTemplate; */ public enum PrintTemplateStatusConstant { - daiqueren_1("配送任务打印模板-市配","1"), + daiqueren_2("配载计划打印模板","2"), daiqueren_3("运单票据打印模板","3"), daiqueren_4("托运单模板","4"), @@ -19,9 +19,9 @@ public enum PrintTemplateStatusConstant { daiqueren_9("货架码模板","9"), daiqueren_10("包件模板","10"), daiqueren_11("库存品包件模板","11"), - daiqueren_12("配送任务打印模板-商配","12"); - - + daiqueren_12("配送任务打印模板-商配","12"), + peisongtask_ziti("配送任务打印模板-自提","13"), + daiqueren_1("配送任务打印模板-市配","1"); /** * 状态 */ diff --git a/blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/entity/BasicdataWarehouseEntity.java b/blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/entity/BasicdataWarehouseEntity.java index 2af689c76..a8e7e39ce 100644 --- a/blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/entity/BasicdataWarehouseEntity.java +++ b/blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/entity/BasicdataWarehouseEntity.java @@ -39,7 +39,8 @@ import java.util.Date; @EqualsAndHashCode(callSuper = true) public class BasicdataWarehouseEntity extends TenantEntity { - /** + public Object var; + /** * 预留1 */ @ApiModelProperty(value = "预留1") diff --git a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionStockEntity.java b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionStockEntity.java index 87afb70ee..69a8fffe2 100644 --- a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionStockEntity.java +++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistributionStockEntity.java @@ -25,14 +25,14 @@ import lombok.EqualsAndHashCode; import org.springblade.core.tenant.mp.TenantEntity; /** - * 库存品详情信息 实体类 + * PAD备货扫描记录 实体类 * * @author cyz * @since 2023-06-26 */ @Data @TableName("logpm_distribution_stock") -@ApiModel(value = "DistributionStock对象", description = "库存品详情信息") +@ApiModel(value = "DistributionStock对象", description = "PAD备货扫描记录") @EqualsAndHashCode(callSuper = true) public class DistributionStockEntity extends TenantEntity { diff --git a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistrilbutionBillLadingEntity.java b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistrilbutionBillLadingEntity.java index 6a4f9eade..f878d53a8 100644 --- a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistrilbutionBillLadingEntity.java +++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/entity/DistrilbutionBillLadingEntity.java @@ -82,6 +82,9 @@ public class DistrilbutionBillLadingEntity extends TenantEntity { */ @ApiModelProperty(value = "提货人") private String consignee; + + @ApiModelProperty(value = "提货人电话") + private String consigneePhone; /** * 提货车牌 */ diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistrilbutionBillLadingController.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistrilbutionBillLadingController.java index af2b31c57..89c9cd903 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistrilbutionBillLadingController.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistrilbutionBillLadingController.java @@ -285,6 +285,9 @@ public class DistrilbutionBillLadingController extends BladeController { } + + + /** * 导出数据 */ diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.java index fda7358cf..2b888f137 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.java @@ -113,4 +113,17 @@ public interface DistributionParcelListMapper extends BaseMapper exportDistributionParcelList(@Param("paramMap")Map paramMap, @Param("idArr") List idArr); void freezeByOrderCode(@Param("orderCode") String orderCode,@Param("freezeStatus") String freezeStatus); + + + /** + * 包件列表查询库位信息 + * @param orderCodes + * @param warehouseId + * @return + */ + List selectAllocationInforByOrderPackageCode(@Param("orderCodes") List orderCodes,@Param("warehouseId") Long warehouseId); + + + + } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.xml b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.xml index 598b45c5b..0258593c7 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.xml +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionParcelListMapper.xml @@ -835,6 +835,29 @@ + + + + + + + + update logpm_distribution_parcel_list set order_package_freeze_status = #{freezeStatus} diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockMapper.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockMapper.java index 0b52125f9..9bb0f98f8 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockMapper.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockMapper.java @@ -28,7 +28,7 @@ import org.apache.ibatis.annotations.Param; import java.util.List; /** - * 库存品详情信息 Mapper 接口 + * PAD备货扫描记录 Mapper 接口 * * @author cyz * @since 2023-06-26 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 3b7de90d2..b2324f1d6 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 @@ -154,6 +154,17 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl printBatch(String ids, Integer type) throws Exception { @@ -4556,18 +4573,240 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl handleZiTiData(BasicPrintTemplateEntity template, String[] idArray, String html) throws Exception { + + List result = new ArrayList<>(); + for (String id : idArray) { + + + //查询自提预约单 + DistrilbutionBillLadingEntity distrilbutionBillLadingEntity = distrilbutionBillLadingMapper.selectById(Long.parseLong(id)); + // 查询自提预约单下面的订单 + + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(DistrilbutionBillStockEntity::getBillLadingId, distrilbutionBillLadingEntity.getId()); + List distrilbutionBillStockEntities = distrilbutionBillStockMapper.selectList(queryWrapper); + // 查找自提预约单下面包件 排除取消的 + + LambdaQueryWrapper distrilbutionBillStockEntityLambdaQueryWrapper = new LambdaQueryWrapper<>(); + distrilbutionBillStockEntityLambdaQueryWrapper.eq(DistrilbutionBillPackageEntity::getBillLadingId, distrilbutionBillLadingEntity.getId()); + distrilbutionBillStockEntityLambdaQueryWrapper.ne(DistrilbutionBillPackageEntity::getPacketBarStatus, 2); + List distrilbutionBillPackageEntities = distrilbutionBillPackageMapper.selectList(distrilbutionBillStockEntityLambdaQueryWrapper); + + + Set ids = new HashSet(); + for (DistrilbutionBillPackageEntity distrilbutionBillPackageEntity : distrilbutionBillPackageEntities) { + ids.add(distrilbutionBillPackageEntity.getParceListId()); + } + // 得到所以的订单列表 + List distributionParcelListEntities = distributionParcelListMapper.selectBatchIds(ids); + + + Map map = new HashMap<>(); + map.put("自提单号", distrilbutionBillLadingEntity.getPickupBatch()); + String fileTypeName = QRCodeUtil.createCodeToFile(map.get("自提单号").toString()); + map.put("自提单二维码", QRCodeUtil.getEmpAutograph(fileTypeName)); +// map.put("收货单单位", reservationEntity.getReceivingUnit());//收货单单位 +// map.put("商场名称", reservationEntity.getStoreName());//商场名称 + // 构建map集合中收货单和商场名称 + buildMapByDistrilbutionBillLadingEntity(map, distrilbutionBillStockEntities, distributionParcelListEntities,distrilbutionBillLadingEntity); + map.put("提货人", distrilbutionBillLadingEntity.getConsignee());//提货人 + map.put("联系电话", distrilbutionBillLadingEntity.getConsigneePhone());//收货人电话 + BasicdataWarehouseEntity entityWarehouseId = warehouseClient.getEntityWarehouseId(distrilbutionBillLadingEntity.getWarehouseId()); + + map.put("自提仓库", entityWarehouseId!=null?entityWarehouseId.getName():""); + map.put("自提时间", DateUtil.formatDateTime(distrilbutionBillLadingEntity.getPickUpTime())); + map.put("提货车牌号", distrilbutionBillLadingEntity.getPickUpPlate()); + + + String popHtml = TemplateUtil.popTemplate("自提配送单", map, html); + PrintPreviewVO printPreviewVO = new PrintPreviewVO(); + printPreviewVO.setTemplateId(template.getId()); + printPreviewVO.setTemplateHtml(popHtml); + result.add(printPreviewVO); + + + } + return result; + + } + + private void buildMapByDistrilbutionBillLadingEntity(Map map, List distrilbutionBillStockEntities, List distributionParcelListEntities,DistrilbutionBillLadingEntity distrilbutionBillLadingEntity) { + + // 查询订单集合 + Set ids = new HashSet(); + for (DistrilbutionBillStockEntity distrilbutionBillStockEntity : distrilbutionBillStockEntities) { + ids.add(distrilbutionBillStockEntity.getStockArticleId()); + } + // 得到所以的订单列表 + List distributionStockArticleEntities = distributionStockArticleMapper.selectBatchIds(ids); + // 获取订单中的商城和收货单位 + StringBuilder consigneeUnit = new StringBuilder(); + StringBuilder mailNames = new StringBuilder(); + List> ls = new ArrayList<>(); + + int a = 1; + + // 构建产品明细的表头 -- 这里目前只处理了定制品和有数据的库存品,对于零担 还没有处理 + List> listMapTemp = new ArrayList<>(); + Map m = new HashMap<>(); + for (DistributionParcelListEntity distributionParcelListEntity : distributionParcelListEntities) { + if (m.containsKey(distributionParcelListEntity.getThirdProduct())) { + int o = (int) m.get(distributionParcelListEntity.getThirdProduct()); + o = o + 1; + m.put(distributionParcelListEntity.getThirdProduct(), o); + } else { + m.put(distributionParcelListEntity.getThirdProduct(), 1); + } + } + // 加入到集合中的去 目的是为了获取分类头部 + listMapTemp.add(m); + + + for (DistributionStockArticleEntity distributionStockArticleEntity : distributionStockArticleEntities) { + + // 需要从所有的包件的 + List ts = new ArrayList<>(); + for (DistributionParcelListEntity distributionParcelListEntity : distributionParcelListEntities) { + if (distributionParcelListEntity.getStockArticleId().equals(distributionStockArticleEntity.getId())){ + ts.add(distributionParcelListEntity); + } + } + + if (!mailNames.toString().contains(distributionStockArticleEntity.getMallName())) { + if (!mailNames.toString().equals("")) { + mailNames.append(","); + } + mailNames.append(distributionStockArticleEntity.getMallName()); + } + if (!consigneeUnit.toString().contains(distributionStockArticleEntity.getConsigneeUnit())) { + if (!consigneeUnit.toString().equals("")) { + consigneeUnit.append(","); + } + consigneeUnit.append(distributionStockArticleEntity.getConsigneeUnit()); + } + + Map tempMap = new HashMap<>(); + + tempMap.put("序号", a); + tempMap.put("运单号", distributionStockArticleEntity.getWaybillNumber()); + tempMap.put("合同号", distributionStockArticleEntity.getOrderCode()); + String materialNameStr = buildMaterialNameStr(distributionParcelListEntities); + tempMap.put("物料名称", materialNameStr); + + + // 构建产品明细 --对于每一个订单 + buildProductDetail(tempMap, m, ts); + // 查询货物货位 + + //通过订单id和预约id查询对应包件的库位信息 + List orderPackageCodes = ts.stream() + .map(DistributionParcelListEntity::getOrderPackageCode) // 获取每个对象的orderPackageCode + .collect(Collectors.toList()); + + + List orderPackageIds = ts.stream() + .map(DistributionParcelListEntity::getId) // 获取每个对象的包件ID + .collect(Collectors.toList()); + + + List allocationStrList = distributionParcelListMapper.selectAllocationInforByOrderPackageCode(orderPackageCodes, distrilbutionBillLadingEntity.getWarehouseId()); + String allocationStr = StringUtils.join(allocationStrList, ","); + tempMap.put("货位", allocationStr); + //通过订单id和预约id查询对应包件的备货区信息 + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(DistributionStockEntity::getBillLadingId,distrilbutionBillLadingEntity.getId()).in(DistributionStockEntity::getParcelListId,orderPackageIds); + List distributionStockEntities = distributionStockMapper.selectList(lambdaQueryWrapper); + + Set stockupAreaStrList=distributionStockEntities.stream().map(DistributionStockEntity::getStockupArea).collect(Collectors.toSet()); + + String stockupAreaStr = StringUtils.join(stockupAreaStrList, ","); + tempMap.put("备货区", stockupAreaStr); + + + ls.add(tempMap); + a++; + + } + + map.put("收货单单位", consigneeUnit.toString()); + map.put("商场名称", mailNames.toString()); + + map.put("明细", ls); + + } + + /** + * 构建分类明细 + * @param tempMap + * @param m + * @param distributionParcelListEntities + */ + private void buildProductDetail(Map tempMap, Map m, List distributionParcelListEntities) { + + Set strings = m.keySet(); + + for (String string : strings) { + int count = buildCountNum(string, distributionParcelListEntities); + tempMap.put(string, count); + } + } + + /** + * 统计分类对于件的数量 + * + * @param string + * @param distributionParcelListEntities + * @return + */ + private int buildCountNum(String string, List distributionParcelListEntities) { + + int num = 0; + for (DistributionParcelListEntity distributionParcelListEntity : distributionParcelListEntities) { + + if (distributionParcelListEntity.getThirdProduct().equals(string)) { + num++; + } + } + return num; + } + + private String buildMaterialNameStr(List distributionParcelListEntitie) { + StringBuffer sb = new StringBuffer(); + for (DistributionParcelListEntity distributionParcelListEntity : distributionParcelListEntitie) { + + if(ObjectUtils.isNotNull(distributionParcelListEntity.getMallName())){ + if (!sb.toString().equals("")) { + sb.append(","); + } + sb.append(distributionParcelListEntity.getMaterialName()); + } + + } + return sb.toString(); + + } + @Override public void testData(String s) throws Exception { String[] split = s.split(","); @@ -5182,27 +5421,27 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl distributionParcelListEntities = baseMapper.selectPackageListByDeliveryListId(deliveryListEntity.getId()); boolean flag = false; - if (Func.isNotEmpty(distributionParcelListEntities)){ + if (Func.isNotEmpty(distributionParcelListEntities)) { List isHave = distributionParcelListEntities.stream().filter(p -> p.getOrderPackageCode().equals(distrilbutionloadingscanDTO.getBarcode())).collect(Collectors.toList()); - if (Func.isNotEmpty(isHave)){ + if (Func.isNotEmpty(isHave)) { flag = isHave.size() == 1; } - }else { + } else { List disStockListDetailEntities = baseMapper.selectInventoryListByDeliveryListId(distrilbutionloadingscanDTO.getDeliveryId()); - if (Func.isNotEmpty(disStockListDetailEntities)){ + if (Func.isNotEmpty(disStockListDetailEntities)) { List isHaveinven = disStockListDetailEntities.stream().filter(inven -> Func.isNotEmpty(inven.getStockPackageCode()) && inven.getStockPackageCode().equals(distrilbutionloadingscanDTO.getBarcode())).collect(Collectors.toList()); - if (Func.isNotEmpty(isHaveinven)){ + if (Func.isNotEmpty(isHaveinven)) { flag = isHaveinven.size() == 1; } } } - if (flag){ + if (flag) { //存在该订制品或者库存品包件信息但是未进行装车操作 - return Resp.scanFail("包件未装车","包件未装车"); - }else { + return Resp.scanFail("包件未装车", "包件未装车"); + } else { //该配送任务查询无该包件信息 - return Resp.scanFail("此配送无该包件","此配送无该包件信息"); + return Resp.scanFail("此配送无该包件", "此配送无该包件信息"); } } @@ -5429,10 +5668,10 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl ls = distributionDeliveryListService.printBatch("1704390271891935233",2); + List ls = distributionDeliveryListService.printBatch("1725390137390186498",3); System.out.println(ls);