From 69baa16caff89a86a1a1f62c76b6ffc2520131f5 Mon Sep 17 00:00:00 2001 From: zhaoqiaobo <583671871@qq.com> Date: Tue, 31 Dec 2024 09:43:16 +0800 Subject: [PATCH 01/19] =?UTF-8?q?feat(all):=20=E7=B4=A2=E8=8F=B2=E4=BA=9A?= =?UTF-8?q?=E5=B7=A5=E5=8E=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1 增加华之韵物流对接 --- .../factorydata/base/constant/FactoryDatabaseConstants.java | 2 +- .../factorydata/suofeiya/config/InterceptorAdapterConfig.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/blade-service/logpm-factory-data/logpm-factory-data-base/src/main/java/com/logpm/factorydata/base/constant/FactoryDatabaseConstants.java b/blade-service/logpm-factory-data/logpm-factory-data-base/src/main/java/com/logpm/factorydata/base/constant/FactoryDatabaseConstants.java index 4a2cac0ea..d9511f3b8 100644 --- a/blade-service/logpm-factory-data/logpm-factory-data-base/src/main/java/com/logpm/factorydata/base/constant/FactoryDatabaseConstants.java +++ b/blade-service/logpm-factory-data/logpm-factory-data-base/src/main/java/com/logpm/factorydata/base/constant/FactoryDatabaseConstants.java @@ -10,6 +10,6 @@ public class FactoryDatabaseConstants { /** * 工厂基地对应的始发仓 redis key */ - public static final String FACTORY_DATA_BASE_WAREHOUSE_BIND = "factorydata:base:warehouse_bind"; + public static final String FACTORY_DATA_BASE_WAREHOUSE_BIND = "factory-data:base:warehouse_bind"; } diff --git a/blade-service/logpm-factory-data/logpm-factory-data-suofeiya/src/main/java/com/logpm/factorydata/suofeiya/config/InterceptorAdapterConfig.java b/blade-service/logpm-factory-data/logpm-factory-data-suofeiya/src/main/java/com/logpm/factorydata/suofeiya/config/InterceptorAdapterConfig.java index 98506e31a..d2789be72 100644 --- a/blade-service/logpm-factory-data/logpm-factory-data-suofeiya/src/main/java/com/logpm/factorydata/suofeiya/config/InterceptorAdapterConfig.java +++ b/blade-service/logpm-factory-data/logpm-factory-data-suofeiya/src/main/java/com/logpm/factorydata/suofeiya/config/InterceptorAdapterConfig.java @@ -38,10 +38,10 @@ public class InterceptorAdapterConfig implements WebMvcConfigurer { @Override public void addInterceptors(InterceptorRegistry interceptorRegistry) { interceptorRegistry.addInterceptor(new FactoryAccountsInterceptor(redis, environment, redisLockClient, mockLoginService, suoFeiYaProperties, deliveryNoteService)) - .addPathPatterns("/order/v1").order(2); + .addPathPatterns("/order/v1").order(3); interceptorRegistry.addInterceptor(new LocalServerLoginAccountsInterceptor(redis, environment, redisLockClient, mockLoginService, suoFeiYaProperties, deliveryNoteService)) .addPathPatterns("/**") .excludePathPatterns("/order/v1") - .order(3); + .order(2); } } From 691129011a725fcd02aae991fcd3889682132e16 Mon Sep 17 00:00:00 2001 From: zhaoqiaobo <583671871@qq.com> Date: Tue, 31 Dec 2024 10:19:41 +0800 Subject: [PATCH 02/19] =?UTF-8?q?feat(all):=20=E7=B4=A2=E8=8F=B2=E4=BA=9A?= =?UTF-8?q?=E5=B7=A5=E5=8E=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1 增加华之韵物流对接 --- .../trunkline/mq/AdvanceOrderListener.java | 149 +++--------------- .../service/ITrunklineAdvanceService.java | 2 + .../impl/TrunklineAdvanceServiceImpl.java | 137 +++++++++++++++- 3 files changed, 161 insertions(+), 127 deletions(-) diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mq/AdvanceOrderListener.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mq/AdvanceOrderListener.java index 268bdaf39..69ee9bd74 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mq/AdvanceOrderListener.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mq/AdvanceOrderListener.java @@ -13,7 +13,6 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.logpm.distribution.entity.DistributionParcelListEntity; import com.logpm.distribution.feign.IDistributionParcelListClient; import com.logpm.distribution.feign.IDistributionStockArticleClient; -import com.logpm.factorydata.enums.BrandEnums; import com.logpm.trunkline.entity.TrunklineAdvanceDetailEntity; import com.logpm.trunkline.entity.TrunklineAdvanceEntity; import com.logpm.trunkline.entity.TrunklineDetailProductEntity; @@ -21,6 +20,7 @@ import com.logpm.trunkline.service.ITrunklineAdvanceDetailService; import com.logpm.trunkline.service.ITrunklineAdvanceService; import com.logpm.trunkline.service.ITrunklineCarsLoadService; import com.logpm.trunkline.service.ITrunklineDetailProductService; +import com.rabbitmq.client.Channel; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springblade.common.constant.factorydata.FactoryDataConstants; @@ -30,10 +30,18 @@ import org.springframework.amqp.rabbit.annotation.Exchange; import org.springframework.amqp.rabbit.annotation.Queue; import org.springframework.amqp.rabbit.annotation.QueueBinding; import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.amqp.support.AmqpHeaders; +import org.springframework.messaging.handler.annotation.Header; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; -import java.util.*; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; /** * 监听工厂数据转暂存单 @@ -57,131 +65,20 @@ public class AdvanceOrderListener { value = @Queue(name = FactoryDataConstants.Mq.Queues.ADVANCE_ORDER), exchange = @Exchange(name = FactoryDataConstants.Mq.Exchanges.ADVANCE_ORDER, type = ExchangeTypes.TOPIC), key = FactoryDataConstants.Mq.RoutingKeys.ADVANCE_ORDER - )) - @Transactional(rollbackFor = Exception.class) - public void advanceOrder(String msg) { + ), ackMode = "MANUAL") + public void advanceOrder(String msg, Channel channel, @Header(AmqpHeaders.DELIVERY_TAG) long tag) { // 新增暂存单 - if (StrUtil.isNotBlank(msg)) { - log.info("收到工厂数据暂存单消息:{}", msg); - JSONObject entries = JSONUtil.parseObj(msg); - JSONArray details = entries.getJSONArray("details"); - TrunklineAdvanceEntity advanceEntity = JSONUtil.toBean(entries, TrunklineAdvanceEntity.class); - LambdaQueryWrapper<TrunklineAdvanceEntity> eq = Wrappers.<TrunklineAdvanceEntity>lambdaQuery() - .eq(TrunklineAdvanceEntity::getOrderCode, advanceEntity.getOrderCode()); - if (StrUtil.isNotEmpty(advanceEntity.getTrainNumber())) { - eq.eq(TrunklineAdvanceEntity::getTrainNumber, advanceEntity.getTrainNumber()); - } - // 暂存单 订单自编号 + 车次号 唯一 - List<TrunklineAdvanceEntity> advanceEntities = advanceService.list(eq); - - // 暂存单存在 并且未开单 则将新数据添加到原来的暂存单上 - // 如果已开单则新增暂存单 - if (CollUtil.isNotEmpty(advanceEntities) && ObjectUtil.equal(advanceEntity.getWaybillStatus(), "0")) { - TrunklineAdvanceEntity entity = advanceEntities.get(0); - if (ObjectUtil.isNotEmpty(entity)) { - advanceEntity.setId(entity.getId()); -// advanceEntity.setTotalNum(entity.getTotalNum() + advanceEntity.getTotalNum()); - } - } - Set<String> packageCodeSet = new HashSet<>(); - if (CollUtil.isNotEmpty(details)) { - // 使用HashSet代替ArrayList以优化内存使用和检查重复值 - Set<String> orderPackageCodes = new HashSet<>(); - details.forEach(detail -> { - try { - // 更具描述性的变量命名 - JSONObject jsonObject = JSONUtil.parseObj(detail); - TrunklineAdvanceDetailEntity entity = JSONUtil.toBean(jsonObject, TrunklineAdvanceDetailEntity.class); - // 检查转换后的实体不为null,且其orderPackageCode非null - if (!ObjectUtil.isAllEmpty(entity, entity.getOrderPackageCode())) { - orderPackageCodes.add(entity.getOrderPackageCode()); - } - } catch (Exception e) { - // 异常处理,可根据实际情况记录日志或进行其他处理 - log.error("暂存单转换时发生异常: " + detail + ",异常:" + e.getMessage()); - } - }); - // 查询数据库,校验订单包件编码是否重复 - if (CollUtil.isNotEmpty(orderPackageCodes)) { - Map<String, String> packageCodeByCodes = advanceDetailService.findPackageCodeByCodes(orderPackageCodes); - if (CollUtil.isNotEmpty(packageCodeByCodes)) { - packageCodeSet.addAll(packageCodeByCodes.keySet()); - } - } - } - if (ObjectUtil.isNotNull(advanceEntity)) { - String orderCode = advanceEntity.getOrderCode(); - if (StrUtil.isNotEmpty(orderCode) && orderCode.contains("遗")) { - advanceEntity.setLegacyStatus("1"); - } - // 暂存单不存在则新增,暂存单存在则将暂存单明细往原暂存单中添加 - if (ObjectUtil.isEmpty(advanceEntity.getId())) { - advanceEntity.setCreateUserName(AuthUtil.getNickName()); - advanceService.save(advanceEntity); - } else { - advanceService.updateById(advanceEntity); - } - } - if (ObjectUtil.isNotEmpty(advanceEntity) && CollUtil.isNotEmpty(details)) { - List<TrunklineAdvanceDetailEntity> advanceDetailEntityList = new ArrayList<>(); - List<TrunklineDetailProductEntity> detailProductEntityList = new ArrayList<>(); - for (Object detailObj : details) { - JSONObject detail = JSONUtil.parseObj(detailObj); - TrunklineAdvanceDetailEntity advanceDetailEntity = JSONUtil.toBean(detail, TrunklineAdvanceDetailEntity.class); - if (ObjectUtil.isNotNull(advanceDetailEntity)) { - if (CollUtil.isNotEmpty(packageCodeSet) && packageCodeSet.contains(advanceDetailEntity.getOrderPackageCode())) { - // 金牌如果是重复包条,则单独处理 - if (ObjectUtil.equal(advanceEntity.getBrand(), BrandEnums.JP.getValue())) { - // 金牌按DD单号+包条确定唯一值 - List<TrunklineAdvanceDetailEntity> list = advanceDetailService.list(Wrappers.<TrunklineAdvanceDetailEntity>lambdaQuery() - .eq(TrunklineAdvanceDetailEntity::getOrderPackageCode, advanceDetailEntity.getOrderPackageCode()) - .eq(TrunklineAdvanceDetailEntity::getOrderCode, advanceEntity.getOrderCode()) - ); - if (CollUtil.isNotEmpty(list)) { - // 订单+包件重复则不处理这条数据 - log.error("金牌,订单+包条码重复,订单:{},包条码:{}", advanceEntity.getOrderCode(), advanceDetailEntity.getOrderPackageCode()); - continue; - } else { - // 包件码重复,订单+包件不重复,设置预留字段1 为 1 - advanceDetailEntity.setReserve1("1"); - } - } else { - log.error("非金牌,包条码重复,包条码:{}", advanceDetailEntity.getOrderPackageCode()); - continue; - } - } - advanceDetailEntity.setAdvanceId(advanceEntity.getId()); - // 设置发货时间为当前时间 - if (StrUtil.isEmpty(advanceDetailEntity.getSendDateStr())) { - advanceDetailEntity.setSendDateStr(DateUtil.today()); - } - advanceDetailEntityList.add(advanceDetailEntity); - JSONArray items = detail.getJSONArray("items"); - if (CollUtil.isNotEmpty(items)) { - for (Object itemObj : items) { - JSONObject item = JSONUtil.parseObj(itemObj); - TrunklineDetailProductEntity detailProductEntity = JSONUtil.toBean(item, TrunklineDetailProductEntity.class); - if (ObjectUtil.isNotNull(detailProductEntity)) { - detailProductEntityList.add(detailProductEntity); - } - } - } - } - - } - advanceDetailService.saveBatch(advanceDetailEntityList); - //发送入库包件处理无数据装车数据 - trunklineCarsLoadService.sendRabbitMessageLoadScanData(JSONUtil.toJsonStr(advanceEntity)); - detailProductService.saveBatch(detailProductEntityList); - - //发送报表数据广播 - Long warehouseId = advanceEntity.getWarehouseId(); - String warehouseName = advanceEntity.getWarehouseName(); - String dealerCode = advanceEntity.getDealerCode(); - String dealerName = advanceEntity.getDealerName(); - advanceDetailService.sendReportBasicdataFanout(AuthUtil.getNickName(),AuthUtil.getUserId(),warehouseId,warehouseName,new Date(),advanceDetailEntityList,dealerCode,dealerName); - - } + log.info("收到工厂数据暂存单消息:{}", msg); + try { + advanceService.advanceOrder(msg); + } catch (Exception e) { + e.printStackTrace(); + log.error("收到工厂数据暂存单消息失败: {}", e.getMessage()); + } + try { + channel.basicAck(tag, false); + } catch (IOException e) { + throw new RuntimeException(e); } } diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineAdvanceService.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineAdvanceService.java index 5e13956c8..5075071d3 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineAdvanceService.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineAdvanceService.java @@ -53,4 +53,6 @@ public interface ITrunklineAdvanceService extends BaseService<TrunklineAdvanceEn void clearWaybillInfoByWaybillNo(String waybillNo); Integer findTotalNumByWaybillNoAndOrderCode(String waybillNo, String orderCode); + + void advanceOrder(String msg); } diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineAdvanceServiceImpl.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineAdvanceServiceImpl.java index e49179184..15a48aae0 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineAdvanceServiceImpl.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineAdvanceServiceImpl.java @@ -2,8 +2,12 @@ package com.logpm.trunkline.service.impl; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import cn.hutool.json.JSONArray; +import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; @@ -19,14 +23,18 @@ import com.logpm.distribution.entity.DistributionParcelListEntity; import com.logpm.distribution.entity.DistributionStockArticleEntity; import com.logpm.distribution.feign.IDistributionParcelListClient; import com.logpm.distribution.feign.IDistributionStockArticleClient; +import com.logpm.factorydata.enums.BrandEnums; import com.logpm.trunkline.dto.AdvanceDTO; import com.logpm.trunkline.dto.InComingDTO; import com.logpm.trunkline.dto.OrderStatusDTO; import com.logpm.trunkline.entity.TrunklineAdvanceDetailEntity; import com.logpm.trunkline.entity.TrunklineAdvanceEntity; +import com.logpm.trunkline.entity.TrunklineDetailProductEntity; import com.logpm.trunkline.mapper.TrunklineAdvanceMapper; import com.logpm.trunkline.service.ITrunklineAdvanceDetailService; import com.logpm.trunkline.service.ITrunklineAdvanceService; +import com.logpm.trunkline.service.ITrunklineCarsLoadService; +import com.logpm.trunkline.service.ITrunklineDetailProductService; import com.logpm.trunkline.vo.CustomerInfoVO; import com.logpm.trunkline.vo.OpenOrderVO; import com.logpm.trunkline.vo.TrunklineAdvanceVO; @@ -60,12 +68,13 @@ public class TrunklineAdvanceServiceImpl extends BaseServiceImpl<TrunklineAdvanc private final IBasicdataClientClient basicdataClientClient; private final IBasicdataStoreBusinessClient basicdataStoreBusinessClient; private final IBasicMaterialClient basicMaterialClient; - private final IBasicdataTripartiteMallClient tripartiteMallClient; private final IWarehouseWaybillClient warehouseWaybillClient; private final IBasicdataTripartiteMallClient basicdataTripartiteMallClient; private final RabbitTemplate rabbitTemplate; private final ITrunklineAdvanceDetailService advanceDetailService; private final IBasicdataBrandClient basicdataBrandClient; + private final ITrunklineDetailProductService detailProductService; + private final ITrunklineCarsLoadService trunklineCarsLoadService; @Override @@ -1972,4 +1981,130 @@ public class TrunklineAdvanceServiceImpl extends BaseServiceImpl<TrunklineAdvanc public Integer findTotalNumByWaybillNoAndOrderCode(String waybillNo, String orderCode) { return baseMapper.findTotalNumByWaybillNoAndOrderCode(waybillNo,orderCode); } + + @Override + @Transactional(rollbackFor = Exception.class) + public void advanceOrder(String msg) { + if (StrUtil.isNotBlank(msg)) { + JSONObject entries = JSONUtil.parseObj(msg); + JSONArray details = entries.getJSONArray("details"); + TrunklineAdvanceEntity advanceEntity = JSONUtil.toBean(entries, TrunklineAdvanceEntity.class); + LambdaQueryWrapper<TrunklineAdvanceEntity> eq = Wrappers.<TrunklineAdvanceEntity>lambdaQuery() + .eq(TrunklineAdvanceEntity::getOrderCode, advanceEntity.getOrderCode()); + if (StrUtil.isNotEmpty(advanceEntity.getTrainNumber())) { + eq.eq(TrunklineAdvanceEntity::getTrainNumber, advanceEntity.getTrainNumber()); + } + // 暂存单 订单自编号 + 车次号 唯一 + List<TrunklineAdvanceEntity> advanceEntities = this.list(eq); + + // 暂存单存在 并且未开单 则将新数据添加到原来的暂存单上 + // 如果已开单则新增暂存单 + if (CollUtil.isNotEmpty(advanceEntities) && ObjectUtil.equal(advanceEntity.getWaybillStatus(), "0")) { + TrunklineAdvanceEntity entity = advanceEntities.get(0); + if (ObjectUtil.isNotEmpty(entity)) { + advanceEntity.setId(entity.getId()); +// advanceEntity.setTotalNum(entity.getTotalNum() + advanceEntity.getTotalNum()); + } + } + Set<String> packageCodeSet = new HashSet<>(); + if (CollUtil.isNotEmpty(details)) { + // 使用HashSet代替ArrayList以优化内存使用和检查重复值 + Set<String> orderPackageCodes = new HashSet<>(); + details.forEach(detail -> { + try { + // 更具描述性的变量命名 + JSONObject jsonObject = JSONUtil.parseObj(detail); + TrunklineAdvanceDetailEntity entity = JSONUtil.toBean(jsonObject, TrunklineAdvanceDetailEntity.class); + // 检查转换后的实体不为null,且其orderPackageCode非null + if (!ObjectUtil.isAllEmpty(entity, entity.getOrderPackageCode())) { + orderPackageCodes.add(entity.getOrderPackageCode()); + } + } catch (Exception e) { + // 异常处理,可根据实际情况记录日志或进行其他处理 + log.error("暂存单转换时发生异常: " + detail + ",异常:" + e.getMessage()); + } + }); + // 查询数据库,校验订单包件编码是否重复 + if (CollUtil.isNotEmpty(orderPackageCodes)) { + Map<String, String> packageCodeByCodes = advanceDetailService.findPackageCodeByCodes(orderPackageCodes); + if (CollUtil.isNotEmpty(packageCodeByCodes)) { + packageCodeSet.addAll(packageCodeByCodes.keySet()); + } + } + } + if (ObjectUtil.isNotNull(advanceEntity)) { + String orderCode = advanceEntity.getOrderCode(); + if (StrUtil.isNotEmpty(orderCode) && orderCode.contains("遗")) { + advanceEntity.setLegacyStatus("1"); + } + // 暂存单不存在则新增,暂存单存在则将暂存单明细往原暂存单中添加 + if (ObjectUtil.isEmpty(advanceEntity.getId())) { + advanceEntity.setCreateUserName(AuthUtil.getNickName()); + this.save(advanceEntity); + } else { + this.updateById(advanceEntity); + } + } + if (ObjectUtil.isNotEmpty(advanceEntity) && CollUtil.isNotEmpty(details)) { + List<TrunklineAdvanceDetailEntity> advanceDetailEntityList = new ArrayList<>(); + List<TrunklineDetailProductEntity> detailProductEntityList = new ArrayList<>(); + for (Object detailObj : details) { + JSONObject detail = JSONUtil.parseObj(detailObj); + TrunklineAdvanceDetailEntity advanceDetailEntity = JSONUtil.toBean(detail, TrunklineAdvanceDetailEntity.class); + if (ObjectUtil.isNotNull(advanceDetailEntity)) { + if (CollUtil.isNotEmpty(packageCodeSet) && packageCodeSet.contains(advanceDetailEntity.getOrderPackageCode())) { + // 金牌如果是重复包条,则单独处理 + if (ObjectUtil.equal(advanceEntity.getBrand(), BrandEnums.JP.getValue())) { + // 金牌按DD单号+包条确定唯一值 + List<TrunklineAdvanceDetailEntity> list = advanceDetailService.list(Wrappers.<TrunklineAdvanceDetailEntity>lambdaQuery() + .eq(TrunklineAdvanceDetailEntity::getOrderPackageCode, advanceDetailEntity.getOrderPackageCode()) + .eq(TrunklineAdvanceDetailEntity::getOrderCode, advanceEntity.getOrderCode()) + ); + if (CollUtil.isNotEmpty(list)) { + // 订单+包件重复则不处理这条数据 + log.error("金牌,订单+包条码重复,订单:{},包条码:{}", advanceEntity.getOrderCode(), advanceDetailEntity.getOrderPackageCode()); + continue; + } else { + // 包件码重复,订单+包件不重复,设置预留字段1 为 1 + advanceDetailEntity.setReserve1("1"); + } + } else { + log.error("非金牌,包条码重复,包条码:{}", advanceDetailEntity.getOrderPackageCode()); + continue; + } + } + advanceDetailEntity.setAdvanceId(advanceEntity.getId()); + // 设置发货时间为当前时间 + if (StrUtil.isEmpty(advanceDetailEntity.getSendDateStr())) { + advanceDetailEntity.setSendDateStr(DateUtil.today()); + } + advanceDetailEntityList.add(advanceDetailEntity); + JSONArray items = detail.getJSONArray("items"); + if (CollUtil.isNotEmpty(items)) { + for (Object itemObj : items) { + JSONObject item = JSONUtil.parseObj(itemObj); + TrunklineDetailProductEntity detailProductEntity = JSONUtil.toBean(item, TrunklineDetailProductEntity.class); + if (ObjectUtil.isNotNull(detailProductEntity)) { + detailProductEntityList.add(detailProductEntity); + } + } + } + } + + } + advanceDetailService.saveBatch(advanceDetailEntityList); + //发送入库包件处理无数据装车数据 + trunklineCarsLoadService.sendRabbitMessageLoadScanData(JSONUtil.toJsonStr(advanceEntity)); + detailProductService.saveBatch(detailProductEntityList); + + //发送报表数据广播 + Long warehouseId = advanceEntity.getWarehouseId(); + String warehouseName = advanceEntity.getWarehouseName(); + String dealerCode = advanceEntity.getDealerCode(); + String dealerName = advanceEntity.getDealerName(); + advanceDetailService.sendReportBasicdataFanout(AuthUtil.getNickName(),AuthUtil.getUserId(),warehouseId,warehouseName,new Date(),advanceDetailEntityList,dealerCode,dealerName); + + } + } + } } From 9d6dc89e7dc1d9a49a309db180bcf839b5d140ff Mon Sep 17 00:00:00 2001 From: zhaoqiaobo <583671871@qq.com> Date: Tue, 31 Dec 2024 10:52:02 +0800 Subject: [PATCH 03/19] =?UTF-8?q?feat(all):=20=E7=B4=A2=E8=8F=B2=E4=BA=9A?= =?UTF-8?q?=E5=B7=A5=E5=8E=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1 增加华之韵物流对接 --- .../trunkline/mq/AdvanceOrderListener.java | 4 +- .../service/IAdvanceOrderMqService.java | 6 + .../service/ITrunklineAdvanceService.java | 1 - .../impl/AdvanceOrderMqServiceImpl.java | 170 ++++++++++++++++++ .../impl/TrunklineAdvanceServiceImpl.java | 149 ++------------- 5 files changed, 192 insertions(+), 138 deletions(-) create mode 100644 blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/IAdvanceOrderMqService.java create mode 100644 blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/AdvanceOrderMqServiceImpl.java diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mq/AdvanceOrderListener.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mq/AdvanceOrderListener.java index 69ee9bd74..a7887e028 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mq/AdvanceOrderListener.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mq/AdvanceOrderListener.java @@ -16,6 +16,7 @@ import com.logpm.distribution.feign.IDistributionStockArticleClient; import com.logpm.trunkline.entity.TrunklineAdvanceDetailEntity; import com.logpm.trunkline.entity.TrunklineAdvanceEntity; import com.logpm.trunkline.entity.TrunklineDetailProductEntity; +import com.logpm.trunkline.service.IAdvanceOrderMqService; import com.logpm.trunkline.service.ITrunklineAdvanceDetailService; import com.logpm.trunkline.service.ITrunklineAdvanceService; import com.logpm.trunkline.service.ITrunklineCarsLoadService; @@ -54,6 +55,7 @@ import java.util.Set; @AllArgsConstructor public class AdvanceOrderListener { + private final IAdvanceOrderMqService advanceOrderMqService; private final ITrunklineAdvanceService advanceService; private final ITrunklineAdvanceDetailService advanceDetailService; private final ITrunklineDetailProductService detailProductService; @@ -70,7 +72,7 @@ public class AdvanceOrderListener { // 新增暂存单 log.info("收到工厂数据暂存单消息:{}", msg); try { - advanceService.advanceOrder(msg); + advanceOrderMqService.advanceOrder(msg); } catch (Exception e) { e.printStackTrace(); log.error("收到工厂数据暂存单消息失败: {}", e.getMessage()); diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/IAdvanceOrderMqService.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/IAdvanceOrderMqService.java new file mode 100644 index 000000000..3b08c19a9 --- /dev/null +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/IAdvanceOrderMqService.java @@ -0,0 +1,6 @@ +package com.logpm.trunkline.service; + +public interface IAdvanceOrderMqService { + + void advanceOrder(String msg); +} diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineAdvanceService.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineAdvanceService.java index 5075071d3..fd53be90a 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineAdvanceService.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineAdvanceService.java @@ -54,5 +54,4 @@ public interface ITrunklineAdvanceService extends BaseService<TrunklineAdvanceEn Integer findTotalNumByWaybillNoAndOrderCode(String waybillNo, String orderCode); - void advanceOrder(String msg); } diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/AdvanceOrderMqServiceImpl.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/AdvanceOrderMqServiceImpl.java new file mode 100644 index 000000000..ede63a1ee --- /dev/null +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/AdvanceOrderMqServiceImpl.java @@ -0,0 +1,170 @@ +package com.logpm.trunkline.service.impl; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.json.JSONArray; +import cn.hutool.json.JSONObject; +import cn.hutool.json.JSONUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.logpm.factorydata.enums.BrandEnums; +import com.logpm.trunkline.entity.TrunklineAdvanceDetailEntity; +import com.logpm.trunkline.entity.TrunklineAdvanceEntity; +import com.logpm.trunkline.entity.TrunklineDetailProductEntity; +import com.logpm.trunkline.service.IAdvanceOrderMqService; +import com.logpm.trunkline.service.ITrunklineAdvanceDetailService; +import com.logpm.trunkline.service.ITrunklineAdvanceService; +import com.logpm.trunkline.service.ITrunklineCarsLoadService; +import com.logpm.trunkline.service.ITrunklineDetailProductService; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springblade.core.secure.utils.AuthUtil; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.Date; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +@Service +@Slf4j +@AllArgsConstructor +public class AdvanceOrderMqServiceImpl implements IAdvanceOrderMqService { + + private final ITrunklineAdvanceService advanceService; + private final ITrunklineAdvanceDetailService advanceDetailService; + private final ITrunklineDetailProductService detailProductService; + private final ITrunklineCarsLoadService trunklineCarsLoadService; + + @Override + @Transactional(rollbackFor = Exception.class) + public void advanceOrder(String msg) { + if (StrUtil.isNotBlank(msg)) { + JSONObject entries = JSONUtil.parseObj(msg); + JSONArray details = entries.getJSONArray("details"); + TrunklineAdvanceEntity advanceEntity = JSONUtil.toBean(entries, TrunklineAdvanceEntity.class); + LambdaQueryWrapper<TrunklineAdvanceEntity> eq = Wrappers.<TrunklineAdvanceEntity>lambdaQuery() + .eq(TrunklineAdvanceEntity::getOrderCode, advanceEntity.getOrderCode()); + if (StrUtil.isNotEmpty(advanceEntity.getTrainNumber())) { + eq.eq(TrunklineAdvanceEntity::getTrainNumber, advanceEntity.getTrainNumber()); + } + // 暂存单 订单自编号 + 车次号 唯一 + List<TrunklineAdvanceEntity> advanceEntities = advanceService.list(eq); + + // 暂存单存在 并且未开单 则将新数据添加到原来的暂存单上 + // 如果已开单则新增暂存单 + if (CollUtil.isNotEmpty(advanceEntities) && ObjectUtil.equal(advanceEntity.getWaybillStatus(), "0")) { + TrunklineAdvanceEntity entity = advanceEntities.get(0); + if (ObjectUtil.isNotEmpty(entity)) { + advanceEntity.setId(entity.getId()); +// advanceEntity.setTotalNum(entity.getTotalNum() + advanceEntity.getTotalNum()); + } + } + Set<String> packageCodeSet = new HashSet<>(); + if (CollUtil.isNotEmpty(details)) { + // 使用HashSet代替ArrayList以优化内存使用和检查重复值 + Set<String> orderPackageCodes = new HashSet<>(); + details.forEach(detail -> { + try { + // 更具描述性的变量命名 + JSONObject jsonObject = JSONUtil.parseObj(detail); + TrunklineAdvanceDetailEntity entity = JSONUtil.toBean(jsonObject, TrunklineAdvanceDetailEntity.class); + // 检查转换后的实体不为null,且其orderPackageCode非null + if (!ObjectUtil.isAllEmpty(entity, entity.getOrderPackageCode())) { + orderPackageCodes.add(entity.getOrderPackageCode()); + } + } catch (Exception e) { + // 异常处理,可根据实际情况记录日志或进行其他处理 + log.error("暂存单转换时发生异常: " + detail + ",异常:" + e.getMessage()); + } + }); + // 查询数据库,校验订单包件编码是否重复 + if (CollUtil.isNotEmpty(orderPackageCodes)) { + Map<String, String> packageCodeByCodes = advanceDetailService.findPackageCodeByCodes(orderPackageCodes); + if (CollUtil.isNotEmpty(packageCodeByCodes)) { + packageCodeSet.addAll(packageCodeByCodes.keySet()); + } + } + } + if (ObjectUtil.isNotNull(advanceEntity)) { + String orderCode = advanceEntity.getOrderCode(); + if (StrUtil.isNotEmpty(orderCode) && orderCode.contains("遗")) { + advanceEntity.setLegacyStatus("1"); + } + // 暂存单不存在则新增,暂存单存在则将暂存单明细往原暂存单中添加 + if (ObjectUtil.isEmpty(advanceEntity.getId())) { + advanceEntity.setCreateUserName(AuthUtil.getNickName()); + advanceService.save(advanceEntity); + } else { + advanceService.updateById(advanceEntity); + } + } + if (ObjectUtil.isNotEmpty(advanceEntity) && CollUtil.isNotEmpty(details)) { + List<TrunklineAdvanceDetailEntity> advanceDetailEntityList = new ArrayList<>(); + List<TrunklineDetailProductEntity> detailProductEntityList = new ArrayList<>(); + for (Object detailObj : details) { + JSONObject detail = JSONUtil.parseObj(detailObj); + TrunklineAdvanceDetailEntity advanceDetailEntity = JSONUtil.toBean(detail, TrunklineAdvanceDetailEntity.class); + if (ObjectUtil.isNotNull(advanceDetailEntity)) { + if (CollUtil.isNotEmpty(packageCodeSet) && packageCodeSet.contains(advanceDetailEntity.getOrderPackageCode())) { + // 金牌如果是重复包条,则单独处理 + if (ObjectUtil.equal(advanceEntity.getBrand(), BrandEnums.JP.getValue())) { + // 金牌按DD单号+包条确定唯一值 + List<TrunklineAdvanceDetailEntity> list = advanceDetailService.list(Wrappers.<TrunklineAdvanceDetailEntity>lambdaQuery() + .eq(TrunklineAdvanceDetailEntity::getOrderPackageCode, advanceDetailEntity.getOrderPackageCode()) + .eq(TrunklineAdvanceDetailEntity::getOrderCode, advanceEntity.getOrderCode()) + ); + if (CollUtil.isNotEmpty(list)) { + // 订单+包件重复则不处理这条数据 + log.error("金牌,订单+包条码重复,订单:{},包条码:{}", advanceEntity.getOrderCode(), advanceDetailEntity.getOrderPackageCode()); + continue; + } else { + // 包件码重复,订单+包件不重复,设置预留字段1 为 1 + advanceDetailEntity.setReserve1("1"); + } + } else { + log.error("非金牌,包条码重复,包条码:{}", advanceDetailEntity.getOrderPackageCode()); + continue; + } + } + advanceDetailEntity.setAdvanceId(advanceEntity.getId()); + // 设置发货时间为当前时间 + if (StrUtil.isEmpty(advanceDetailEntity.getSendDateStr())) { + advanceDetailEntity.setSendDateStr(DateUtil.today()); + } + advanceDetailEntityList.add(advanceDetailEntity); + JSONArray items = detail.getJSONArray("items"); + if (CollUtil.isNotEmpty(items)) { + for (Object itemObj : items) { + JSONObject item = JSONUtil.parseObj(itemObj); + TrunklineDetailProductEntity detailProductEntity = JSONUtil.toBean(item, TrunklineDetailProductEntity.class); + if (ObjectUtil.isNotNull(detailProductEntity)) { + detailProductEntityList.add(detailProductEntity); + } + } + } + } + + } + advanceDetailService.saveBatch(advanceDetailEntityList); + //发送入库包件处理无数据装车数据 + trunklineCarsLoadService.sendRabbitMessageLoadScanData(JSONUtil.toJsonStr(advanceEntity)); + detailProductService.saveBatch(detailProductEntityList); + + //发送报表数据广播 + Long warehouseId = advanceEntity.getWarehouseId(); + String warehouseName = advanceEntity.getWarehouseName(); + String dealerCode = advanceEntity.getDealerCode(); + String dealerName = advanceEntity.getDealerName(); + advanceDetailService.sendReportBasicdataFanout(AuthUtil.getNickName(),AuthUtil.getUserId(),warehouseId,warehouseName,new Date(),advanceDetailEntityList,dealerCode,dealerName); + + } + } + } + +} diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineAdvanceServiceImpl.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineAdvanceServiceImpl.java index 15a48aae0..bc94ee765 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineAdvanceServiceImpl.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineAdvanceServiceImpl.java @@ -2,12 +2,8 @@ package com.logpm.trunkline.service.impl; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; -import cn.hutool.json.JSONArray; -import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; @@ -17,19 +13,21 @@ import com.logpm.basicdata.entity.BasicdataBrandEntity; import com.logpm.basicdata.entity.BasicdataClientEntity; import com.logpm.basicdata.entity.BasicdataStoreBusinessEntity; import com.logpm.basicdata.entity.BasicdataWarehouseEntity; -import com.logpm.basicdata.feign.*; +import com.logpm.basicdata.feign.IBasicdataBrandClient; +import com.logpm.basicdata.feign.IBasicdataClientClient; +import com.logpm.basicdata.feign.IBasicdataStoreBusinessClient; +import com.logpm.basicdata.feign.IBasicdataTripartiteMallClient; +import com.logpm.basicdata.feign.IBasicdataWarehouseClient; import com.logpm.distribution.dto.FindParamterDTO; import com.logpm.distribution.entity.DistributionParcelListEntity; import com.logpm.distribution.entity.DistributionStockArticleEntity; import com.logpm.distribution.feign.IDistributionParcelListClient; import com.logpm.distribution.feign.IDistributionStockArticleClient; -import com.logpm.factorydata.enums.BrandEnums; import com.logpm.trunkline.dto.AdvanceDTO; import com.logpm.trunkline.dto.InComingDTO; import com.logpm.trunkline.dto.OrderStatusDTO; import com.logpm.trunkline.entity.TrunklineAdvanceDetailEntity; import com.logpm.trunkline.entity.TrunklineAdvanceEntity; -import com.logpm.trunkline.entity.TrunklineDetailProductEntity; import com.logpm.trunkline.mapper.TrunklineAdvanceMapper; import com.logpm.trunkline.service.ITrunklineAdvanceDetailService; import com.logpm.trunkline.service.ITrunklineAdvanceService; @@ -53,7 +51,14 @@ import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Set; import java.util.function.Function; import java.util.stream.Collectors; @@ -73,9 +78,6 @@ public class TrunklineAdvanceServiceImpl extends BaseServiceImpl<TrunklineAdvanc private final RabbitTemplate rabbitTemplate; private final ITrunklineAdvanceDetailService advanceDetailService; private final IBasicdataBrandClient basicdataBrandClient; - private final ITrunklineDetailProductService detailProductService; - private final ITrunklineCarsLoadService trunklineCarsLoadService; - @Override public boolean saveOrderAndPackage(TrunklineAdvanceDetailEntity advanceDetailEntity, Long warehouseId) { @@ -1982,129 +1984,4 @@ public class TrunklineAdvanceServiceImpl extends BaseServiceImpl<TrunklineAdvanc return baseMapper.findTotalNumByWaybillNoAndOrderCode(waybillNo,orderCode); } - @Override - @Transactional(rollbackFor = Exception.class) - public void advanceOrder(String msg) { - if (StrUtil.isNotBlank(msg)) { - JSONObject entries = JSONUtil.parseObj(msg); - JSONArray details = entries.getJSONArray("details"); - TrunklineAdvanceEntity advanceEntity = JSONUtil.toBean(entries, TrunklineAdvanceEntity.class); - LambdaQueryWrapper<TrunklineAdvanceEntity> eq = Wrappers.<TrunklineAdvanceEntity>lambdaQuery() - .eq(TrunklineAdvanceEntity::getOrderCode, advanceEntity.getOrderCode()); - if (StrUtil.isNotEmpty(advanceEntity.getTrainNumber())) { - eq.eq(TrunklineAdvanceEntity::getTrainNumber, advanceEntity.getTrainNumber()); - } - // 暂存单 订单自编号 + 车次号 唯一 - List<TrunklineAdvanceEntity> advanceEntities = this.list(eq); - - // 暂存单存在 并且未开单 则将新数据添加到原来的暂存单上 - // 如果已开单则新增暂存单 - if (CollUtil.isNotEmpty(advanceEntities) && ObjectUtil.equal(advanceEntity.getWaybillStatus(), "0")) { - TrunklineAdvanceEntity entity = advanceEntities.get(0); - if (ObjectUtil.isNotEmpty(entity)) { - advanceEntity.setId(entity.getId()); -// advanceEntity.setTotalNum(entity.getTotalNum() + advanceEntity.getTotalNum()); - } - } - Set<String> packageCodeSet = new HashSet<>(); - if (CollUtil.isNotEmpty(details)) { - // 使用HashSet代替ArrayList以优化内存使用和检查重复值 - Set<String> orderPackageCodes = new HashSet<>(); - details.forEach(detail -> { - try { - // 更具描述性的变量命名 - JSONObject jsonObject = JSONUtil.parseObj(detail); - TrunklineAdvanceDetailEntity entity = JSONUtil.toBean(jsonObject, TrunklineAdvanceDetailEntity.class); - // 检查转换后的实体不为null,且其orderPackageCode非null - if (!ObjectUtil.isAllEmpty(entity, entity.getOrderPackageCode())) { - orderPackageCodes.add(entity.getOrderPackageCode()); - } - } catch (Exception e) { - // 异常处理,可根据实际情况记录日志或进行其他处理 - log.error("暂存单转换时发生异常: " + detail + ",异常:" + e.getMessage()); - } - }); - // 查询数据库,校验订单包件编码是否重复 - if (CollUtil.isNotEmpty(orderPackageCodes)) { - Map<String, String> packageCodeByCodes = advanceDetailService.findPackageCodeByCodes(orderPackageCodes); - if (CollUtil.isNotEmpty(packageCodeByCodes)) { - packageCodeSet.addAll(packageCodeByCodes.keySet()); - } - } - } - if (ObjectUtil.isNotNull(advanceEntity)) { - String orderCode = advanceEntity.getOrderCode(); - if (StrUtil.isNotEmpty(orderCode) && orderCode.contains("遗")) { - advanceEntity.setLegacyStatus("1"); - } - // 暂存单不存在则新增,暂存单存在则将暂存单明细往原暂存单中添加 - if (ObjectUtil.isEmpty(advanceEntity.getId())) { - advanceEntity.setCreateUserName(AuthUtil.getNickName()); - this.save(advanceEntity); - } else { - this.updateById(advanceEntity); - } - } - if (ObjectUtil.isNotEmpty(advanceEntity) && CollUtil.isNotEmpty(details)) { - List<TrunklineAdvanceDetailEntity> advanceDetailEntityList = new ArrayList<>(); - List<TrunklineDetailProductEntity> detailProductEntityList = new ArrayList<>(); - for (Object detailObj : details) { - JSONObject detail = JSONUtil.parseObj(detailObj); - TrunklineAdvanceDetailEntity advanceDetailEntity = JSONUtil.toBean(detail, TrunklineAdvanceDetailEntity.class); - if (ObjectUtil.isNotNull(advanceDetailEntity)) { - if (CollUtil.isNotEmpty(packageCodeSet) && packageCodeSet.contains(advanceDetailEntity.getOrderPackageCode())) { - // 金牌如果是重复包条,则单独处理 - if (ObjectUtil.equal(advanceEntity.getBrand(), BrandEnums.JP.getValue())) { - // 金牌按DD单号+包条确定唯一值 - List<TrunklineAdvanceDetailEntity> list = advanceDetailService.list(Wrappers.<TrunklineAdvanceDetailEntity>lambdaQuery() - .eq(TrunklineAdvanceDetailEntity::getOrderPackageCode, advanceDetailEntity.getOrderPackageCode()) - .eq(TrunklineAdvanceDetailEntity::getOrderCode, advanceEntity.getOrderCode()) - ); - if (CollUtil.isNotEmpty(list)) { - // 订单+包件重复则不处理这条数据 - log.error("金牌,订单+包条码重复,订单:{},包条码:{}", advanceEntity.getOrderCode(), advanceDetailEntity.getOrderPackageCode()); - continue; - } else { - // 包件码重复,订单+包件不重复,设置预留字段1 为 1 - advanceDetailEntity.setReserve1("1"); - } - } else { - log.error("非金牌,包条码重复,包条码:{}", advanceDetailEntity.getOrderPackageCode()); - continue; - } - } - advanceDetailEntity.setAdvanceId(advanceEntity.getId()); - // 设置发货时间为当前时间 - if (StrUtil.isEmpty(advanceDetailEntity.getSendDateStr())) { - advanceDetailEntity.setSendDateStr(DateUtil.today()); - } - advanceDetailEntityList.add(advanceDetailEntity); - JSONArray items = detail.getJSONArray("items"); - if (CollUtil.isNotEmpty(items)) { - for (Object itemObj : items) { - JSONObject item = JSONUtil.parseObj(itemObj); - TrunklineDetailProductEntity detailProductEntity = JSONUtil.toBean(item, TrunklineDetailProductEntity.class); - if (ObjectUtil.isNotNull(detailProductEntity)) { - detailProductEntityList.add(detailProductEntity); - } - } - } - } - - } - advanceDetailService.saveBatch(advanceDetailEntityList); - //发送入库包件处理无数据装车数据 - trunklineCarsLoadService.sendRabbitMessageLoadScanData(JSONUtil.toJsonStr(advanceEntity)); - detailProductService.saveBatch(detailProductEntityList); - - //发送报表数据广播 - Long warehouseId = advanceEntity.getWarehouseId(); - String warehouseName = advanceEntity.getWarehouseName(); - String dealerCode = advanceEntity.getDealerCode(); - String dealerName = advanceEntity.getDealerName(); - advanceDetailService.sendReportBasicdataFanout(AuthUtil.getNickName(),AuthUtil.getUserId(),warehouseId,warehouseName,new Date(),advanceDetailEntityList,dealerCode,dealerName); - - } - } - } } From fb091e6858e7f27c5d6eacf7ec4efa49970e997c Mon Sep 17 00:00:00 2001 From: zhaoqiaobo <583671871@qq.com> Date: Tue, 31 Dec 2024 11:07:42 +0800 Subject: [PATCH 04/19] =?UTF-8?q?feat(all):=20=E7=B4=A2=E8=8F=B2=E4=BA=9A?= =?UTF-8?q?=E5=B7=A5=E5=8E=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1 增加华之韵物流对接 --- .../trunkline/mq/AdvanceOrderListener.java | 228 +----------------- .../service/IAdvanceOrderMqService.java | 2 + .../impl/AdvanceOrderMqServiceImpl.java | 196 ++++++++++++++- 3 files changed, 208 insertions(+), 218 deletions(-) diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mq/AdvanceOrderListener.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mq/AdvanceOrderListener.java index a7887e028..f84943c94 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mq/AdvanceOrderListener.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mq/AdvanceOrderListener.java @@ -1,31 +1,10 @@ package com.logpm.trunkline.mq; -import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.convert.Convert; -import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.ObjectUtil; -import cn.hutool.core.util.StrUtil; -import cn.hutool.json.JSONArray; -import cn.hutool.json.JSONObject; -import cn.hutool.json.JSONUtil; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.logpm.distribution.entity.DistributionParcelListEntity; -import com.logpm.distribution.feign.IDistributionParcelListClient; -import com.logpm.distribution.feign.IDistributionStockArticleClient; -import com.logpm.trunkline.entity.TrunklineAdvanceDetailEntity; -import com.logpm.trunkline.entity.TrunklineAdvanceEntity; -import com.logpm.trunkline.entity.TrunklineDetailProductEntity; import com.logpm.trunkline.service.IAdvanceOrderMqService; -import com.logpm.trunkline.service.ITrunklineAdvanceDetailService; -import com.logpm.trunkline.service.ITrunklineAdvanceService; -import com.logpm.trunkline.service.ITrunklineCarsLoadService; -import com.logpm.trunkline.service.ITrunklineDetailProductService; import com.rabbitmq.client.Channel; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springblade.common.constant.factorydata.FactoryDataConstants; -import org.springblade.core.secure.utils.AuthUtil; import org.springframework.amqp.core.ExchangeTypes; import org.springframework.amqp.rabbit.annotation.Exchange; import org.springframework.amqp.rabbit.annotation.Queue; @@ -34,15 +13,8 @@ import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.amqp.support.AmqpHeaders; import org.springframework.messaging.handler.annotation.Header; import org.springframework.stereotype.Component; -import org.springframework.transaction.annotation.Transactional; import java.io.IOException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; /** * 监听工厂数据转暂存单 @@ -56,12 +28,6 @@ import java.util.Set; public class AdvanceOrderListener { private final IAdvanceOrderMqService advanceOrderMqService; - private final ITrunklineAdvanceService advanceService; - private final ITrunklineAdvanceDetailService advanceDetailService; - private final ITrunklineDetailProductService detailProductService; - private final ITrunklineCarsLoadService trunklineCarsLoadService; - private final IDistributionStockArticleClient stockArticleClient; - private final IDistributionParcelListClient parcelListClient; @RabbitListener(bindings = @QueueBinding( value = @Queue(name = FactoryDataConstants.Mq.Queues.ADVANCE_ORDER), @@ -88,188 +54,20 @@ public class AdvanceOrderListener { value = @Queue(name = FactoryDataConstants.Mq.Queues.ADVANCE_ORDER_OUPAI), exchange = @Exchange(name = FactoryDataConstants.Mq.Exchanges.ADVANCE_ORDER_OUPAI, type = ExchangeTypes.TOPIC), key = FactoryDataConstants.Mq.RoutingKeys.ADVANCE_ORDER - )) - @Transactional(rollbackFor = Exception.class) - public void advanceOrderOuPai(String msg) { + ), ackMode = "MANUAL") + public void advanceOrderOuPai(String msg, Channel channel, @Header(AmqpHeaders.DELIVERY_TAG) long tag) { // 新增暂存单 - if (StrUtil.isNotBlank(msg)) { - log.info("收到欧派工厂数据暂存单消息:{}", msg); - JSONObject entries = JSONUtil.parseObj(msg); - JSONArray details = entries.getJSONArray("details"); - TrunklineAdvanceEntity advanceEntity = JSONUtil.toBean(entries, TrunklineAdvanceEntity.class); - LambdaQueryWrapper<TrunklineAdvanceEntity> eq = Wrappers.<TrunklineAdvanceEntity>lambdaQuery() - .eq(TrunklineAdvanceEntity::getOrderCode, advanceEntity.getOrderCode()); - if (StrUtil.isNotEmpty(advanceEntity.getTrainNumber())) { - eq.eq(TrunklineAdvanceEntity::getTrainNumber, advanceEntity.getTrainNumber()); - } - // 暂存单 订单自编号 + 车次号 唯一 - List<TrunklineAdvanceEntity> advanceEntities = advanceService.list(eq); - - // 暂存单存在 并且未开单 则将新数据添加到原来的暂存单上 - // 如果已开单则新增暂存单 - // 订单 修改最终客户信息 - if (CollUtil.isNotEmpty(advanceEntities)) { - TrunklineAdvanceEntity entity = advanceEntities.get(0); - if (ObjectUtil.isNotEmpty(entity)) { - // 如果存在则只修改客户信息 - if (StrUtil.isNotEmpty(advanceEntity.getCustomerName())) { - entity.setCustomerName(advanceEntity.getCustomerName()); - } - if (StrUtil.isNotEmpty(advanceEntity.getCustomerAddress())) { - entity.setCustomerAddress(advanceEntity.getCustomerAddress()); - } - if (StrUtil.isNotEmpty(advanceEntity.getCustomerPhone())) { - entity.setCustomerPhone(advanceEntity.getCustomerPhone()); - } - advanceService.updateById(entity); - // 修改在库订单信息 未预约的数据 reservation_status = 10 才更新 - if (ObjectUtil.isAllNotEmpty(entity.getOrderCode(), advanceEntity.getCustomerName(), advanceEntity.getCustomerAddress(), advanceEntity.getCustomerPhone())) { - try { - JSONObject jsonObject = new JSONObject(); - jsonObject.set("orderCode", entity.getOrderCode()); - jsonObject.set("customerName", advanceEntity.getCustomerName()); - jsonObject.set("customerAddress", advanceEntity.getCustomerAddress()); - jsonObject.set("customerPhone", advanceEntity.getCustomerPhone()); - stockArticleClient.updateCustomerAllByOrderCode(JSONUtil.toJsonStr(jsonObject)); - } catch (Exception e) { - log.error("更新在库订单失败"); - } - } - } - } - if (ObjectUtil.isNotNull(advanceEntity)) { - String orderCode = advanceEntity.getOrderCode(); - if (StrUtil.isNotEmpty(orderCode) && orderCode.contains("遗")) { - advanceEntity.setLegacyStatus("1"); - } - // 暂存单不存在则新增,暂存单存在则将暂存单明细往原暂存单中添加 - if (ObjectUtil.isEmpty(advanceEntity.getId())) { - advanceEntity.setCreateUserName(AuthUtil.getNickName()); - advanceService.save(advanceEntity); - } - } - Map<String, String> packageCodeMap = new HashMap<>(); - Map<String, Set<String>> parcelListMap = new HashMap<>(); - if (CollUtil.isNotEmpty(details)) { - // 使用HashSet代替ArrayList以优化内存使用和检查重复值 - Set<String> orderPackageCodes = new HashSet<>(); - details.forEach(detail -> { - try { - // 更具描述性的变量命名 - JSONObject jsonObject = JSONUtil.parseObj(detail); - TrunklineAdvanceDetailEntity entity = JSONUtil.toBean(jsonObject, TrunklineAdvanceDetailEntity.class); - // 检查转换后的实体不为null,且其orderPackageCode非null - if (!ObjectUtil.isAllEmpty(entity, entity.getOrderPackageCode())) { - orderPackageCodes.add(entity.getOrderPackageCode()); - } - } catch (Exception e) { - // 异常处理,可根据实际情况记录日志或进行其他处理 - log.error("暂存单转换时发生异常: " + detail + ",异常:" + e.getMessage()); - } - }); - // 查询数据库,校验订单包件编码是否重复 - if (CollUtil.isNotEmpty(orderPackageCodes)) { - packageCodeMap = advanceDetailService.findPackageCodeByCodes(orderPackageCodes); - try { - if(CollUtil.isNotEmpty(packageCodeMap)){ - parcelListMap = parcelListClient.findPackageCodeByCodes(packageCodeMap.keySet()); - } - }catch (Exception e){ - log.error("查询包件表失败"); - } - } - } - - // 包件 修改 品类信息 物料名称 - if (ObjectUtil.isNotEmpty(advanceEntity) && CollUtil.isNotEmpty(details)) { - List<TrunklineAdvanceDetailEntity> advanceDetailEntityList = new ArrayList<>(); - List<DistributionParcelListEntity> parcelListEntityList = new ArrayList<>(); - List<TrunklineDetailProductEntity> detailProductEntityList = new ArrayList<>(); - Set<String> productCodes = new HashSet<>(); - for (Object detailObj : details) { - JSONObject detail = JSONUtil.parseObj(detailObj); - TrunklineAdvanceDetailEntity advanceDetailEntity = JSONUtil.toBean(detail, TrunklineAdvanceDetailEntity.class); - if (ObjectUtil.isNotNull(advanceDetailEntity)) { - if (CollUtil.isNotEmpty(packageCodeMap) && StrUtil.isNotEmpty(advanceDetailEntity.getOrderPackageCode()) - && packageCodeMap.containsKey(advanceDetailEntity.getOrderPackageCode())) { - if(!ObjectUtil.isAllEmpty(advanceDetailEntity.getFirstPackName(),advanceDetailEntity.getSecondPackName(), - advanceDetailEntity.getThirdPackName(),advanceDetailEntity.getMaterialName())){ - TrunklineAdvanceDetailEntity updatedetailEntity = new TrunklineAdvanceDetailEntity(); - updatedetailEntity.setId(Convert.toLong(packageCodeMap.get(advanceDetailEntity.getOrderPackageCode()))); - updatedetailEntity.setFirstPackName(advanceDetailEntity.getFirstPackName()); - updatedetailEntity.setFirstPackCode(advanceDetailEntity.getFirstPackCode()); - updatedetailEntity.setSecondPackName(advanceDetailEntity.getSecondPackName()); - updatedetailEntity.setSecondPackCode(advanceDetailEntity.getSecondPackCode()); - updatedetailEntity.setThirdPackName(advanceDetailEntity.getThirdPackName()); - updatedetailEntity.setThirdPackCode(advanceDetailEntity.getThirdPackCode()); - updatedetailEntity.setMaterialName(advanceDetailEntity.getMaterialName()); - updatedetailEntity.setMaterialCode(advanceDetailEntity.getMaterialCode()); - advanceDetailEntityList.add(updatedetailEntity); - } - if(CollUtil.isNotEmpty(parcelListMap) && parcelListMap.containsKey(advanceDetailEntity.getOrderPackageCode())){ - Set<String> strings = parcelListMap.get(advanceDetailEntity.getOrderPackageCode()); - for (String string : strings) { - DistributionParcelListEntity parcelListEntity = new DistributionParcelListEntity(); - parcelListEntity.setId(Convert.toLong(string)); - parcelListEntity.setFirsts(advanceDetailEntity.getFirstPackName()); - parcelListEntity.setSecond(advanceDetailEntity.getSecondPackName()); - parcelListEntity.setThirdProduct(advanceDetailEntity.getThirdPackName()); - parcelListEntity.setMaterialName(advanceDetailEntity.getMaterialName()); - parcelListEntity.setMaterialCode(advanceDetailEntity.getMaterialCode()); - parcelListEntityList.add(parcelListEntity); - } - - } - } else { - advanceDetailEntity.setAdvanceId(advanceEntity.getId()); - // 设置发货时间为当前时间 - if (StrUtil.isEmpty(advanceDetailEntity.getSendDateStr())) { - advanceDetailEntity.setSendDateStr(DateUtil.today()); - } - advanceDetailEntityList.add(advanceDetailEntity); - } - - JSONArray items = detail.getJSONArray("items"); - if (CollUtil.isNotEmpty(items)) { - for (Object itemObj : items) { - JSONObject item = JSONUtil.parseObj(itemObj); - TrunklineDetailProductEntity detailProductEntity = JSONUtil.toBean(item, TrunklineDetailProductEntity.class); - if (ObjectUtil.isNotNull(detailProductEntity)) { - productCodes.add(detailProductEntity.getProductCode()); - detailProductEntityList.add(detailProductEntity); - } - } - } - } - - } - if(CollUtil.isNotEmpty(parcelListEntityList)){ - parcelListClient.saveorUpdateBatchByOP(parcelListEntityList); - } - if(CollUtil.isNotEmpty(advanceDetailEntityList)){ - advanceDetailService.saveOrUpdateBatch(advanceDetailEntityList); - } - //发送入库包件处理无数据装车数据 - trunklineCarsLoadService.sendRabbitMessageLoadScanData(JSONUtil.toJsonStr(advanceEntity)); - if(CollUtil.isNotEmpty(detailProductEntityList)){ - if(ObjectUtil.isAllNotEmpty(packageCodeMap,productCodes)){ - List<TrunklineDetailProductEntity> list = detailProductService.list(Wrappers.<TrunklineDetailProductEntity>lambdaQuery() - .in(TrunklineDetailProductEntity::getUnitNo, packageCodeMap.keySet()) - .in(TrunklineDetailProductEntity::getProductCode, productCodes) - ); - if(CollUtil.isNotEmpty(list)){ - for (TrunklineDetailProductEntity productEntity : detailProductEntityList) { - for (TrunklineDetailProductEntity detailProductEntity : list) { - if(ObjectUtil.equal(productEntity.getProductCode(),detailProductEntity.getProductCode())){ - productEntity.setId(detailProductEntity.getId()); - } - } - } - } - } - detailProductService.saveOrUpdateBatch(detailProductEntityList); - } - } + log.info("收到欧派工厂数据暂存单消息:{}", msg); + try { + advanceOrderMqService.advanceOrderOuPai(msg); + } catch (Exception e) { + e.printStackTrace(); + log.error("收到欧派工厂数据暂存单消息失败: {}", e.getMessage()); + } + try { + channel.basicAck(tag, false); + } catch (IOException e) { + throw new RuntimeException(e); } } diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/IAdvanceOrderMqService.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/IAdvanceOrderMqService.java index 3b08c19a9..4f35bb9ca 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/IAdvanceOrderMqService.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/IAdvanceOrderMqService.java @@ -3,4 +3,6 @@ package com.logpm.trunkline.service; public interface IAdvanceOrderMqService { void advanceOrder(String msg); + + void advanceOrderOuPai(String msg); } diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/AdvanceOrderMqServiceImpl.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/AdvanceOrderMqServiceImpl.java index ede63a1ee..cbd594d5d 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/AdvanceOrderMqServiceImpl.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/AdvanceOrderMqServiceImpl.java @@ -1,6 +1,7 @@ package com.logpm.trunkline.service.impl; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.convert.Convert; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; @@ -9,6 +10,9 @@ import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.logpm.distribution.entity.DistributionParcelListEntity; +import com.logpm.distribution.feign.IDistributionParcelListClient; +import com.logpm.distribution.feign.IDistributionStockArticleClient; import com.logpm.factorydata.enums.BrandEnums; import com.logpm.trunkline.entity.TrunklineAdvanceDetailEntity; import com.logpm.trunkline.entity.TrunklineAdvanceEntity; @@ -26,6 +30,7 @@ import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.Date; +import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; @@ -40,6 +45,8 @@ public class AdvanceOrderMqServiceImpl implements IAdvanceOrderMqService { private final ITrunklineAdvanceDetailService advanceDetailService; private final ITrunklineDetailProductService detailProductService; private final ITrunklineCarsLoadService trunklineCarsLoadService; + private final IDistributionStockArticleClient stockArticleClient; + private final IDistributionParcelListClient parcelListClient; @Override @Transactional(rollbackFor = Exception.class) @@ -152,19 +159,202 @@ public class AdvanceOrderMqServiceImpl implements IAdvanceOrderMqService { } advanceDetailService.saveBatch(advanceDetailEntityList); - //发送入库包件处理无数据装车数据 + // 发送入库包件处理无数据装车数据 trunklineCarsLoadService.sendRabbitMessageLoadScanData(JSONUtil.toJsonStr(advanceEntity)); detailProductService.saveBatch(detailProductEntityList); - //发送报表数据广播 + // 发送报表数据广播 Long warehouseId = advanceEntity.getWarehouseId(); String warehouseName = advanceEntity.getWarehouseName(); String dealerCode = advanceEntity.getDealerCode(); String dealerName = advanceEntity.getDealerName(); - advanceDetailService.sendReportBasicdataFanout(AuthUtil.getNickName(),AuthUtil.getUserId(),warehouseId,warehouseName,new Date(),advanceDetailEntityList,dealerCode,dealerName); + advanceDetailService.sendReportBasicdataFanout(AuthUtil.getNickName(), AuthUtil.getUserId(), warehouseId, warehouseName, new Date(), advanceDetailEntityList, dealerCode, dealerName); } } } + @Override + @Transactional(rollbackFor = Exception.class) + public void advanceOrderOuPai(String msg) { + if (StrUtil.isNotBlank(msg)) { + JSONObject entries = JSONUtil.parseObj(msg); + JSONArray details = entries.getJSONArray("details"); + TrunklineAdvanceEntity advanceEntity = JSONUtil.toBean(entries, TrunklineAdvanceEntity.class); + LambdaQueryWrapper<TrunklineAdvanceEntity> eq = Wrappers.<TrunklineAdvanceEntity>lambdaQuery() + .eq(TrunklineAdvanceEntity::getOrderCode, advanceEntity.getOrderCode()); + if (StrUtil.isNotEmpty(advanceEntity.getTrainNumber())) { + eq.eq(TrunklineAdvanceEntity::getTrainNumber, advanceEntity.getTrainNumber()); + } + // 暂存单 订单自编号 + 车次号 唯一 + List<TrunklineAdvanceEntity> advanceEntities = advanceService.list(eq); + + // 暂存单存在 并且未开单 则将新数据添加到原来的暂存单上 + // 如果已开单则新增暂存单 + // 订单 修改最终客户信息 + if (CollUtil.isNotEmpty(advanceEntities)) { + TrunklineAdvanceEntity entity = advanceEntities.get(0); + if (ObjectUtil.isNotEmpty(entity)) { + // 如果存在则只修改客户信息 + if (StrUtil.isNotEmpty(advanceEntity.getCustomerName())) { + entity.setCustomerName(advanceEntity.getCustomerName()); + } + if (StrUtil.isNotEmpty(advanceEntity.getCustomerAddress())) { + entity.setCustomerAddress(advanceEntity.getCustomerAddress()); + } + if (StrUtil.isNotEmpty(advanceEntity.getCustomerPhone())) { + entity.setCustomerPhone(advanceEntity.getCustomerPhone()); + } + advanceService.updateById(entity); + // 修改在库订单信息 未预约的数据 reservation_status = 10 才更新 + if (ObjectUtil.isAllNotEmpty(entity.getOrderCode(), advanceEntity.getCustomerName(), advanceEntity.getCustomerAddress(), advanceEntity.getCustomerPhone())) { + try { + JSONObject jsonObject = new JSONObject(); + jsonObject.set("orderCode", entity.getOrderCode()); + jsonObject.set("customerName", advanceEntity.getCustomerName()); + jsonObject.set("customerAddress", advanceEntity.getCustomerAddress()); + jsonObject.set("customerPhone", advanceEntity.getCustomerPhone()); + stockArticleClient.updateCustomerAllByOrderCode(JSONUtil.toJsonStr(jsonObject)); + } catch (Exception e) { + log.error("更新在库订单失败"); + } + } + } + } + if (ObjectUtil.isNotNull(advanceEntity)) { + String orderCode = advanceEntity.getOrderCode(); + if (StrUtil.isNotEmpty(orderCode) && orderCode.contains("遗")) { + advanceEntity.setLegacyStatus("1"); + } + // 暂存单不存在则新增,暂存单存在则将暂存单明细往原暂存单中添加 + if (ObjectUtil.isEmpty(advanceEntity.getId())) { + advanceEntity.setCreateUserName(AuthUtil.getNickName()); + advanceService.save(advanceEntity); + } + } + Map<String, String> packageCodeMap = new HashMap<>(); + Map<String, Set<String>> parcelListMap = new HashMap<>(); + if (CollUtil.isNotEmpty(details)) { + // 使用HashSet代替ArrayList以优化内存使用和检查重复值 + Set<String> orderPackageCodes = new HashSet<>(); + details.forEach(detail -> { + try { + // 更具描述性的变量命名 + JSONObject jsonObject = JSONUtil.parseObj(detail); + TrunklineAdvanceDetailEntity entity = JSONUtil.toBean(jsonObject, TrunklineAdvanceDetailEntity.class); + // 检查转换后的实体不为null,且其orderPackageCode非null + if (!ObjectUtil.isAllEmpty(entity, entity.getOrderPackageCode())) { + orderPackageCodes.add(entity.getOrderPackageCode()); + } + } catch (Exception e) { + // 异常处理,可根据实际情况记录日志或进行其他处理 + log.error("暂存单转换时发生异常: " + detail + ",异常:" + e.getMessage()); + } + }); + // 查询数据库,校验订单包件编码是否重复 + if (CollUtil.isNotEmpty(orderPackageCodes)) { + packageCodeMap = advanceDetailService.findPackageCodeByCodes(orderPackageCodes); + try { + if (CollUtil.isNotEmpty(packageCodeMap)) { + parcelListMap = parcelListClient.findPackageCodeByCodes(packageCodeMap.keySet()); + } + } catch (Exception e) { + log.error("查询包件表失败"); + } + } + } + + // 包件 修改 品类信息 物料名称 + if (ObjectUtil.isNotEmpty(advanceEntity) && CollUtil.isNotEmpty(details)) { + List<TrunklineAdvanceDetailEntity> advanceDetailEntityList = new ArrayList<>(); + List<DistributionParcelListEntity> parcelListEntityList = new ArrayList<>(); + List<TrunklineDetailProductEntity> detailProductEntityList = new ArrayList<>(); + Set<String> productCodes = new HashSet<>(); + for (Object detailObj : details) { + JSONObject detail = JSONUtil.parseObj(detailObj); + TrunklineAdvanceDetailEntity advanceDetailEntity = JSONUtil.toBean(detail, TrunklineAdvanceDetailEntity.class); + if (ObjectUtil.isNotNull(advanceDetailEntity)) { + if (CollUtil.isNotEmpty(packageCodeMap) && StrUtil.isNotEmpty(advanceDetailEntity.getOrderPackageCode()) + && packageCodeMap.containsKey(advanceDetailEntity.getOrderPackageCode())) { + if (!ObjectUtil.isAllEmpty(advanceDetailEntity.getFirstPackName(), advanceDetailEntity.getSecondPackName(), + advanceDetailEntity.getThirdPackName(), advanceDetailEntity.getMaterialName())) { + TrunklineAdvanceDetailEntity updatedetailEntity = new TrunklineAdvanceDetailEntity(); + updatedetailEntity.setId(Convert.toLong(packageCodeMap.get(advanceDetailEntity.getOrderPackageCode()))); + updatedetailEntity.setFirstPackName(advanceDetailEntity.getFirstPackName()); + updatedetailEntity.setFirstPackCode(advanceDetailEntity.getFirstPackCode()); + updatedetailEntity.setSecondPackName(advanceDetailEntity.getSecondPackName()); + updatedetailEntity.setSecondPackCode(advanceDetailEntity.getSecondPackCode()); + updatedetailEntity.setThirdPackName(advanceDetailEntity.getThirdPackName()); + updatedetailEntity.setThirdPackCode(advanceDetailEntity.getThirdPackCode()); + updatedetailEntity.setMaterialName(advanceDetailEntity.getMaterialName()); + updatedetailEntity.setMaterialCode(advanceDetailEntity.getMaterialCode()); + advanceDetailEntityList.add(updatedetailEntity); + } + if (CollUtil.isNotEmpty(parcelListMap) && parcelListMap.containsKey(advanceDetailEntity.getOrderPackageCode())) { + Set<String> strings = parcelListMap.get(advanceDetailEntity.getOrderPackageCode()); + for (String string : strings) { + DistributionParcelListEntity parcelListEntity = new DistributionParcelListEntity(); + parcelListEntity.setId(Convert.toLong(string)); + parcelListEntity.setFirsts(advanceDetailEntity.getFirstPackName()); + parcelListEntity.setSecond(advanceDetailEntity.getSecondPackName()); + parcelListEntity.setThirdProduct(advanceDetailEntity.getThirdPackName()); + parcelListEntity.setMaterialName(advanceDetailEntity.getMaterialName()); + parcelListEntity.setMaterialCode(advanceDetailEntity.getMaterialCode()); + parcelListEntityList.add(parcelListEntity); + } + + } + } else { + advanceDetailEntity.setAdvanceId(advanceEntity.getId()); + // 设置发货时间为当前时间 + if (StrUtil.isEmpty(advanceDetailEntity.getSendDateStr())) { + advanceDetailEntity.setSendDateStr(DateUtil.today()); + } + advanceDetailEntityList.add(advanceDetailEntity); + } + + JSONArray items = detail.getJSONArray("items"); + if (CollUtil.isNotEmpty(items)) { + for (Object itemObj : items) { + JSONObject item = JSONUtil.parseObj(itemObj); + TrunklineDetailProductEntity detailProductEntity = JSONUtil.toBean(item, TrunklineDetailProductEntity.class); + if (ObjectUtil.isNotNull(detailProductEntity)) { + productCodes.add(detailProductEntity.getProductCode()); + detailProductEntityList.add(detailProductEntity); + } + } + } + } + + } + if (CollUtil.isNotEmpty(parcelListEntityList)) { + parcelListClient.saveorUpdateBatchByOP(parcelListEntityList); + } + if (CollUtil.isNotEmpty(advanceDetailEntityList)) { + advanceDetailService.saveOrUpdateBatch(advanceDetailEntityList); + } + // 发送入库包件处理无数据装车数据 + trunklineCarsLoadService.sendRabbitMessageLoadScanData(JSONUtil.toJsonStr(advanceEntity)); + if (CollUtil.isNotEmpty(detailProductEntityList)) { + if (ObjectUtil.isAllNotEmpty(packageCodeMap, productCodes)) { + List<TrunklineDetailProductEntity> list = detailProductService.list(Wrappers.<TrunklineDetailProductEntity>lambdaQuery() + .in(TrunklineDetailProductEntity::getUnitNo, packageCodeMap.keySet()) + .in(TrunklineDetailProductEntity::getProductCode, productCodes) + ); + if (CollUtil.isNotEmpty(list)) { + for (TrunklineDetailProductEntity productEntity : detailProductEntityList) { + for (TrunklineDetailProductEntity detailProductEntity : list) { + if (ObjectUtil.equal(productEntity.getProductCode(), detailProductEntity.getProductCode())) { + productEntity.setId(detailProductEntity.getId()); + } + } + } + } + } + detailProductService.saveOrUpdateBatch(detailProductEntityList); + } + } + } + } + } From e07c614c334652697b0433fa2afdec721ff4af40 Mon Sep 17 00:00:00 2001 From: zhaoqiaobo <583671871@qq.com> Date: Tue, 31 Dec 2024 15:24:57 +0800 Subject: [PATCH 05/19] =?UTF-8?q?feat(all):=20=E9=85=8D=E9=80=81=E8=BD=A6?= =?UTF-8?q?=E6=AC=A1=E6=88=90=E6=9C=AC=E6=8A=A5=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1 增加车次完结时间字段 --- .../entity/ExpenseDispatchTrainDetailEntity.java | 6 ++++++ .../service/impl/QualityDeliverServiceImpl.java | 13 +++++++------ .../mapper/ExpenseDispatchTrainDetailMapper.xml | 6 ++++++ .../query/ExpenseDispatchTrainDetailQuery.java | 12 ++++++++++++ .../statistics/vo/ExpenseDispatchTrainDetailVO.java | 8 +++++++- 5 files changed, 38 insertions(+), 7 deletions(-) diff --git a/blade-service-api/logpm-statisticsdata-api/src/main/java/com/logpm/statistics/entity/ExpenseDispatchTrainDetailEntity.java b/blade-service-api/logpm-statisticsdata-api/src/main/java/com/logpm/statistics/entity/ExpenseDispatchTrainDetailEntity.java index 238494f66..d816bbbf1 100644 --- a/blade-service-api/logpm-statisticsdata-api/src/main/java/com/logpm/statistics/entity/ExpenseDispatchTrainDetailEntity.java +++ b/blade-service-api/logpm-statisticsdata-api/src/main/java/com/logpm/statistics/entity/ExpenseDispatchTrainDetailEntity.java @@ -75,6 +75,12 @@ public class ExpenseDispatchTrainDetailEntity extends TenantEntity { @ApiModelProperty(value = "配送日期") @ExcelProperty("车次号") private String deliveryDate; + /** + * 车次完成时间 + */ + @ApiModelProperty(value = "车次完成时间") + @ExcelProperty("车次完成时间") + private Date trainCompletionTime; /** * 目的仓 */ diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/QualityDeliverServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/QualityDeliverServiceImpl.java index df0b5937e..fb725531e 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/QualityDeliverServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/QualityDeliverServiceImpl.java @@ -116,6 +116,7 @@ public class QualityDeliverServiceImpl extends BaseServiceImpl<QualityDeliverMap BigDecimal fuelCost = BigDecimal.ZERO; trainDetailEntity.setSettlementStatus("未结算"); for (QualityDeliverEntity qualityDeliverEntity : value) { + trainDetailEntity.setTrainCompletionTime(qualityDeliverEntity.getCarComplateTime()); trainDetailEntity.setTotalOrderQuantity(qualityDeliverEntity.getOrderNumber()); trainDetailEntity.setDeliveryVehicle(qualityDeliverEntity.getSignCarNumber()); trainDetailEntity.setDistributionModel(qualityDeliverEntity.getSignCarType()); @@ -426,16 +427,16 @@ public class QualityDeliverServiceImpl extends BaseServiceImpl<QualityDeliverMap baseMapper.delPlanDelivery(id); } - @Override - public void delDistributionCarStart(Long id) { - baseMapper.delDistributionCarStart(id); - } + @Override + public void delDistributionCarStart(Long id) { + baseMapper.delDistributionCarStart(id); + } @Override public void carExpenseDispatchDetailFinal(String trainNumber) { - if(StrUtil.isNotEmpty(trainNumber)){ + if (StrUtil.isNotEmpty(trainNumber)) { List<QualityDeliverEntity> entities = this.list(Wrappers.<QualityDeliverEntity>lambdaQuery().eq(QualityDeliverEntity::getSignTrainNumber, trainNumber)); - if(CollUtil.isNotEmpty(entities)){ + if (CollUtil.isNotEmpty(entities)) { buildCarExpenseReport(entities); } } diff --git a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/ExpenseDispatchTrainDetailMapper.xml b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/ExpenseDispatchTrainDetailMapper.xml index b4196e805..b2c8fb0b4 100644 --- a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/ExpenseDispatchTrainDetailMapper.xml +++ b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/ExpenseDispatchTrainDetailMapper.xml @@ -37,6 +37,12 @@ <if test="expenseDispatchTrainDetail.deliveryDateEnd != null and expenseDispatchTrainDetail.deliveryDateEnd != ''"> and delivery_date <= #{expenseDispatchTrainDetail.deliveryDateEnd} </if> + <if test="expenseDispatchTrainDetail.trainCompletionTimeStart != null and expenseDispatchTrainDetail.trainCompletionTimeStart != ''"> + and train_completion_time >= #{expenseDispatchTrainDetail.trainCompletionTimeStart} + </if> + <if test="expenseDispatchTrainDetail.trainCompletionTimeEnd != null and expenseDispatchTrainDetail.trainCompletionTimeEnd != ''"> + and train_completion_time <= #{expenseDispatchTrainDetail.trainCompletionTimeEnd} + </if> <if test="expenseDispatchTrainDetail.distributionType != null and expenseDispatchTrainDetail.distributionType != ''"> and distribution_type = #{expenseDispatchTrainDetail.distributionType} </if> diff --git a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/query/ExpenseDispatchTrainDetailQuery.java b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/query/ExpenseDispatchTrainDetailQuery.java index 8080f6230..378193f4c 100644 --- a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/query/ExpenseDispatchTrainDetailQuery.java +++ b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/query/ExpenseDispatchTrainDetailQuery.java @@ -5,6 +5,8 @@ import lombok.Data; import lombok.EqualsAndHashCode; import org.springblade.core.mp.support.Query; +import java.util.Date; + @Data @EqualsAndHashCode(callSuper = true) public class ExpenseDispatchTrainDetailQuery extends Query { @@ -18,6 +20,16 @@ public class ExpenseDispatchTrainDetailQuery extends Query { */ @ApiModelProperty(value = "配送日期结束") private String deliveryDateEnd; + /** + * 车次完成时间开始 + */ + @ApiModelProperty(value = "车次完成时间开始") + private Date trainCompletionTimeStart; + /** + * 车次完成时间结束 + */ + @ApiModelProperty(value = "车次完成时间结束") + private Date trainCompletionTimeEnd; /** * 配送司机 */ diff --git a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/vo/ExpenseDispatchTrainDetailVO.java b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/vo/ExpenseDispatchTrainDetailVO.java index ab78ca7bf..16803ce32 100644 --- a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/vo/ExpenseDispatchTrainDetailVO.java +++ b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/vo/ExpenseDispatchTrainDetailVO.java @@ -64,8 +64,14 @@ public class ExpenseDispatchTrainDetailVO { * 配送日期 */ @ApiModelProperty(value = "配送日期") - @ExcelProperty("车次号") + @ExcelProperty("配送日期") private String deliveryDate; + /** + * 车次完成时间 + */ + @ApiModelProperty(value = "车次完成时间") + @ExcelProperty("车次完成时间") + private String trainCompletionTime; /** * 目的仓 */ From 1c0a822656eb655e3a9ef58c4804b3f1dbdddd8f Mon Sep 17 00:00:00 2001 From: zhaoqiaobo <583671871@qq.com> Date: Tue, 31 Dec 2024 15:41:36 +0800 Subject: [PATCH 06/19] =?UTF-8?q?feat(all):=20=E9=85=8D=E9=80=81=E8=BD=A6?= =?UTF-8?q?=E6=AC=A1=E6=88=90=E6=9C=AC=E6=8A=A5=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1 增加车次完结时间字段 --- .../ExpenseDispatchTrainDetailEntity.java | 18 ++++++++++++++++++ .../impl/QualityDeliverServiceImpl.java | 3 +++ .../ExpenseDispatchWarehouseMonthMapper.xml | 12 ++++++------ 3 files changed, 27 insertions(+), 6 deletions(-) diff --git a/blade-service-api/logpm-statisticsdata-api/src/main/java/com/logpm/statistics/entity/ExpenseDispatchTrainDetailEntity.java b/blade-service-api/logpm-statisticsdata-api/src/main/java/com/logpm/statistics/entity/ExpenseDispatchTrainDetailEntity.java index d816bbbf1..568619b5b 100644 --- a/blade-service-api/logpm-statisticsdata-api/src/main/java/com/logpm/statistics/entity/ExpenseDispatchTrainDetailEntity.java +++ b/blade-service-api/logpm-statisticsdata-api/src/main/java/com/logpm/statistics/entity/ExpenseDispatchTrainDetailEntity.java @@ -81,6 +81,24 @@ public class ExpenseDispatchTrainDetailEntity extends TenantEntity { @ApiModelProperty(value = "车次完成时间") @ExcelProperty("车次完成时间") private Date trainCompletionTime; + /** + * 车次完成时间-年 + */ + @ApiModelProperty(value = "车次完成时间-年") + @ExcelProperty("车次完成时间-年") + private int trainCompletionYear; + /** + * 车次完成时间-月 + */ + @ApiModelProperty(value = "车次完成时间-月") + @ExcelProperty("车次完成时间-月") + private int trainCompletionMonth; + /** + * 车次完成时间-日 + */ + @ApiModelProperty(value = "车次完成时间-日") + @ExcelProperty("车次完成时间-日") + private int trainCompletionDay; /** * 目的仓 */ diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/QualityDeliverServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/QualityDeliverServiceImpl.java index fb725531e..0f8de634d 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/QualityDeliverServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/QualityDeliverServiceImpl.java @@ -116,6 +116,9 @@ public class QualityDeliverServiceImpl extends BaseServiceImpl<QualityDeliverMap BigDecimal fuelCost = BigDecimal.ZERO; trainDetailEntity.setSettlementStatus("未结算"); for (QualityDeliverEntity qualityDeliverEntity : value) { + trainDetailEntity.setTrainCompletionYear(DateUtil.year(qualityDeliverEntity.getCarComplateTime())); + trainDetailEntity.setTrainCompletionMonth(DateUtil.month(qualityDeliverEntity.getCarComplateTime()) + 1); + trainDetailEntity.setTrainCompletionDay(DateUtil.dayOfMonth(qualityDeliverEntity.getCarComplateTime())); trainDetailEntity.setTrainCompletionTime(qualityDeliverEntity.getCarComplateTime()); trainDetailEntity.setTotalOrderQuantity(qualityDeliverEntity.getOrderNumber()); trainDetailEntity.setDeliveryVehicle(qualityDeliverEntity.getSignCarNumber()); diff --git a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/ExpenseDispatchWarehouseMonthMapper.xml b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/ExpenseDispatchWarehouseMonthMapper.xml index c105a65fd..f24947158 100644 --- a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/ExpenseDispatchWarehouseMonthMapper.xml +++ b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/mapper/ExpenseDispatchWarehouseMonthMapper.xml @@ -32,9 +32,9 @@ <select id="expenseDispatchDetailMonthJob" resultType="com.logpm.statistics.entity.ExpenseDispatchWarehouseMonthEntity"> select t.destination_warehouse destinationWarehouse, - t.settlement_month settlementMonth, - t.settlement_year settlementYear, - concat(t.settlement_year,'年',t.settlement_month,'月') settlementTime, + t.train_completion_month settlementMonth, + t.train_completion_year settlementYear, + concat(t.train_completion_year,'年',t.train_completion_month,'月') settlementTime, count(*) totalTrainService, sum(t.planned_total_quantity) plannedTotalQuantity, sum(t.inventory_item_count) inventoryItemCount, @@ -57,9 +57,9 @@ sum(t.change_amount) changeAmount, sum(t.settlement_amount) settlementAmount from logpm_expense_dispatch_train_detail t - where t.settlement_year = #{year} - and t.settlement_month = #{month} - group by t.settlement_month,t.settlement_year,t.destination_warehouse + where t.train_completion_year = #{year} + and t.train_completion_month = #{month} + group by t.train_completion_month,t.train_completion_year,t.destination_warehouse </select> From 80da0fba094cb95f5718b4757d8685c0aa078293 Mon Sep 17 00:00:00 2001 From: PigBaoBei <2739175034@qq.com> Date: Tue, 31 Dec 2024 16:20:07 +0800 Subject: [PATCH 07/19] =?UTF-8?q?=E5=94=AE=E5=90=8E=E4=B8=83=E5=8D=81?= =?UTF-8?q?=E4=BA=8C=E5=B0=8F=E6=97=B6=E8=B6=85=E6=97=B6=E3=80=81=E6=89=98?= =?UTF-8?q?=E7=9B=98=E5=A4=87=E8=B4=A7BUG=E4=BF=AE=E5=A4=8D=E3=80=81?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=89=AB=E6=8F=8F=E8=AE=B0=E5=BD=95=E8=AF=A6?= =?UTF-8?q?=E6=83=85=E3=80=81=E6=89=B9=E9=87=8F=E4=B8=8A=E6=9E=B6=E5=A4=87?= =?UTF-8?q?=E8=B4=A7=E5=BA=93=E4=BD=8D=E3=80=81=E6=89=B9=E9=87=8F=E5=8F=96?= =?UTF-8?q?=E6=B6=88=E5=A4=87=E8=B4=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/DistributionAppStockUpClientVO.java | 1 + .../DistributionAppStockUpScanDetailVO.java | 13 +-- .../AftersalesWorkOrderController.java | 1 - .../mapper/AftersalesWorkOrderMapper.xml | 5 +- .../api/DistributionStockupAppController.java | 8 +- .../mapper/DistributionReservationMapper.xml | 4 +- .../mapper/DistributionStockMapper.xml | 5 +- .../mapper/DistributionStockupMapper.java | 4 +- .../mapper/DistrilbutionBillLadingMapper.xml | 4 +- .../service/IDistributionStockupService.java | 8 +- .../DistributionReservationServiceImpl.java | 2 +- .../impl/DistributionStockupServiceImpl.java | 98 ++++++++++++++----- 12 files changed, 101 insertions(+), 52 deletions(-) diff --git a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/app/DistributionAppStockUpClientVO.java b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/app/DistributionAppStockUpClientVO.java index acbee6a43..a79cdacf9 100644 --- a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/app/DistributionAppStockUpClientVO.java +++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/app/DistributionAppStockUpClientVO.java @@ -50,6 +50,7 @@ public class DistributionAppStockUpClientVO implements Serializable { private List<DistributionAppStockUpZeroOrderDetailVO> stockUpZeroOrderDetailVOList; private List<DistributionAppStockUpPackageDetailVO> deliveryPackageDetailList; private List<DistributionAppStockUpTrayDetailVO> deliveryTrayList; + private List<DistributionAppStockUpScanDetailVO> stockUpScanDetailVO; diff --git a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/app/DistributionAppStockUpScanDetailVO.java b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/app/DistributionAppStockUpScanDetailVO.java index 74e382788..6850d7645 100644 --- a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/app/DistributionAppStockUpScanDetailVO.java +++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/app/DistributionAppStockUpScanDetailVO.java @@ -31,10 +31,11 @@ import java.util.List; public class DistributionAppStockUpScanDetailVO implements Serializable { private static final long serialVersionUID = 1L; - private String trayName; - private String trayCode; - private Integer planNum; - private Integer scanNum; - - + private Long stockId; + private Integer type; + private String orderPackageCode; + private String typeName; + private String goodsName; + private String orderCode; + private String stockupAllocation; } diff --git a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/controller/AftersalesWorkOrderController.java b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/controller/AftersalesWorkOrderController.java index 84f8830c0..94c76b04d 100644 --- a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/controller/AftersalesWorkOrderController.java +++ b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/controller/AftersalesWorkOrderController.java @@ -140,7 +140,6 @@ public class AftersalesWorkOrderController extends BladeController { log.error("工单查询系统异常》》》{}", e.getMessage()); return R.fail("系统异常!"); } - } /** diff --git a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/mapper/AftersalesWorkOrderMapper.xml b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/mapper/AftersalesWorkOrderMapper.xml index 8973a9c22..4e6eff028 100644 --- a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/mapper/AftersalesWorkOrderMapper.xml +++ b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/mapper/AftersalesWorkOrderMapper.xml @@ -1250,9 +1250,10 @@ logpm_aftersales_processor AS lbp WHERE lbp.types_of != 3 - AND lbp.processing_status IN ( '1', '3' ) + AND lbp.processing_status = 1 AND lbp.is_deleted = 0 - AND DATEDIFF(DATE_FORMAT(lbp.create_time,'%y%m%d'), DATE_FORMAT(NOW(),'%y%m%d')) <= -3 + AND DATEDIFF(DATE_FORMAT(lbp.create_time,'%y%m%d'), DATE_FORMAT('2025-01-01','%y%m%d')) <= -3 + AND DATE_FORMAT(lbp.create_time,'%y%m%d') >= DATE_FORMAT( '2025-01-01', '%y%m%d' ) </select> <select id="pageAllList" resultType="com.logpm.aftersales.vo.AftersalesWorkOrderVO"> SELECT DISTINCT diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/api/DistributionStockupAppController.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/api/DistributionStockupAppController.java index 42b2a4a08..f7ced57ff 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/api/DistributionStockupAppController.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/api/DistributionStockupAppController.java @@ -1121,9 +1121,9 @@ public class DistributionStockupAppController extends BladeController { Long reservationId = stockupDTO.getReservationId(); switch (typeService){ case "1": case "2": - return distributionStockupService.handleDeliveryPackageDetailList(reservationId,orderId); + return distributionStockupService.handleDeliveryPackageDetailList(reservationId); case "3": - return distributionStockupService.handleBillPackageDetailList(reservationId,orderId); + return distributionStockupService.handleBillPackageDetailList(reservationId); default: return R.fail("未知的typeService"); } @@ -1221,7 +1221,7 @@ public class DistributionStockupAppController extends BladeController { @ResponseBody @PostMapping("/stockupScanDetail") @ApiOperationSupport(order = 1) - @ApiOperation(value = "备货扫描", notes = "传入stockupDTO") + @ApiOperation(value = "备货扫描详情", notes = "传入stockupDTO") public R stockupScanDetail(@RequestBody StockupDTO stockupDTO) { String lockKey = "Lock:" + stockupDTO.getPacketBarCode() + stockupDTO.getStockupId(); String method = "#######################DistributionStockupAppController.newStockupScan"; @@ -1233,7 +1233,7 @@ public class DistributionStockupAppController extends BladeController { redis.setEx(lockKey, stockupDTO.getPacketBarCode() + stockupDTO.getStockupId(), 5L); //针对商市配、自提分别进行处理 if (Objects.isNull(stockupDTO.getReservationId())){ - log.error(method+"参数:stockupDTO.getTypeService()缺失"); + log.error(method+"参数:stockupDTO.getReservationId()缺失"); return Resp.scanFail("参数缺失,请联系管理员!!!","参数缺失,请联系管理员!!!"); } if (Objects.isNull(stockupDTO.getStockupId())){ 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 9d331820c..54737cdc4 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 @@ -92,7 +92,7 @@ LEFT JOIN logpm_distribution_parcel_list AS ldpl ON ldpl.id = ldrp.parce_list_id AND ldpl.is_deleted = 0 AND ldpl.is_transfer = 0 LEFT JOIN logpm_warehouse_tray AS lwt ON ldpl.pallet = lwt.pallet_name AND lwt.warehouse_id = ldpl.warehouse_id - LEFT JOIN logpm_distribution_stock AS lds ON lds.reservation_id = ldrp.reservation_id + LEFT JOIN logpm_distribution_stock AS lds ON lds.reservation_id = ldrp.reservation_id AND lds.coding = ldpl.order_package_code AND lds.type = 1 AND lds.outbound_type != 3 AND lds.cancel_status != 1 @@ -102,7 +102,7 @@ GROUP BY ldpl.pallet HAVING - IFNULL( sum( ldpl.quantity ), 0 ) > 0 + IFNULL( sum( ldpl.quantity ), 0 ) > 0 AND ldpl.pallet IS NOT NULL ) AS t LEFT JOIN logpm_warehouse_tray_goods AS lwtg ON lwtg.tray_code = t.trayCode AND lwtg.is_deleted = 0 diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockMapper.xml b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockMapper.xml index fdb7a621f..e839d3a34 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockMapper.xml +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockMapper.xml @@ -117,10 +117,11 @@ <select id="selectScanDetail" resultType="com.logpm.distribution.vo.app.DistributionAppStockUpScanDetailVO"> SELECT - lds.id, + lds.id AS stockId, + lds.type AS type, lds.coding AS orderPackageCode, CASE lds.type - WHEN 1 THEN '订制品' + WHEN 1 THEN '定制品' WHEN 2 THEN '库存品' WHEN 3 THEN '零担' ELSE diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockupMapper.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockupMapper.java index fd28d3904..f0dd71cb4 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockupMapper.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockupMapper.java @@ -373,7 +373,7 @@ public interface DistributionStockupMapper extends BaseMapper<DistributionStocku * @param orderId * @return */ - List<DistributionAppStockUpPackageDetailVO> selectDeliveryPackageDetailList(@Param("reservationId")Long reservationId,@Param("orderId") Long orderId); + List<DistributionAppStockUpPackageDetailVO> selectDeliveryPackageDetailList(@Param("reservationId")Long reservationId); /** * 查询自提包件列表 @@ -381,7 +381,7 @@ public interface DistributionStockupMapper extends BaseMapper<DistributionStocku * @param orderId * @return */ - List<DistributionAppStockUpPackageDetailVO> selectBillPackageDetailList(@Param("billId")Long billId,@Param("orderId") Long orderId); + List<DistributionAppStockUpPackageDetailVO> selectBillPackageDetailList(@Param("billId")Long billId); /** * 查询自提备货所有包件 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 161e778cc..ad5cd26e0 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 @@ -1145,7 +1145,7 @@ LEFT JOIN logpm_distribution_parcel_list AS ldpl ON ldpl.id = ldbp.parce_list_id AND ldpl.is_deleted = 0 AND ldpl.is_transfer = 0 LEFT JOIN logpm_warehouse_tray AS lwt ON ldpl.pallet = lwt.pallet_name AND lwt.warehouse_id = ldpl.warehouse_id - LEFT JOIN logpm_distribution_stock AS lds ON lds.reservation_id = ldbp.bill_lading_id + LEFT JOIN logpm_distribution_stock AS lds ON lds.reservation_id = ldbp.bill_lading_id AND lds.coding = ldpl.order_package_code AND lds.type = 1 AND lds.outbound_type = 3 AND lds.cancel_status != 1 @@ -1155,7 +1155,7 @@ GROUP BY ldpl.pallet HAVING - IFNULL( sum( ldpl.quantity ), 0 ) > 0 + IFNULL( sum( ldpl.quantity ), 0 ) > 0 AND ldpl.pallet IS NOT NULL ) AS t LEFT JOIN logpm_warehouse_tray_goods AS lwtg ON lwtg.tray_code = t.trayCode AND lwtg.is_deleted = 0 diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionStockupService.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionStockupService.java index ab3aad485..995989d82 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionStockupService.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionStockupService.java @@ -365,18 +365,18 @@ public interface IDistributionStockupService extends BaseService<DistributionSto /** * 查询备货扫描PDA包件详情 * @param reservationId - * @param orderId + * @param * @return */ - R handleDeliveryPackageDetailList(Long reservationId, Long orderId); + R handleDeliveryPackageDetailList(Long reservationId); /** * 查询自提包件数据 * @param reservationId - * @param orderId + * @param * @return */ - R handleBillPackageDetailList(Long reservationId, Long orderId); + R handleBillPackageDetailList(Long reservationId); /** diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionReservationServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionReservationServiceImpl.java index 87ea7a0a5..8b369c3bb 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionReservationServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionReservationServiceImpl.java @@ -2123,7 +2123,7 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu //构建库存品 DisStockListDetailEntity disStockListDetailEntity = new DisStockListDetailEntity(); disStockListDetailEntity.setNum(1); - disStockListDetailEntity.setSku(distributionStockListDTO.getSku()); + disStockListDetailEntity.setSku(distributionStockListDTO.getCargoNumber()); disStockListDetailEntity.setStockListId(distributionStockListDTO.getId()); disStockListDetailEntity.setStockLockingStatus(InventoryLoadingStatusConstant.weizhuangche.getValue()); disStockListDetailEntity.setStockSignfoStatus(InventorySigningStatusConstant.weiqianshou.getValue()); diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockupServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockupServiceImpl.java index 0c8572aad..6d50cd5a7 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockupServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockupServiceImpl.java @@ -4643,7 +4643,7 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution //配送零担备货 return handleDeliveryZeroStockUp(stockupDTO, myCurrentWarehouse, reservationId, stockupEntity); case 4: - //配送零担备货 + //配送托盘备货 return handleDeliveryTrayStockUp(stockupDTO, myCurrentWarehouse, reservationId, stockupEntity); default: log.error(method + "未知scanType"); @@ -4687,26 +4687,42 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution log.info(method+"查询预约包件计划信息错误>>>>>>>>>>>>>>>>>>>>>>reservationId:{}",reservationId); return R.fail("查询计划信息错误"); } - List<Long> trayPackageIds = trayIdList.stream().map(WarehouseTrayGoodsEntity::getAssociationId).collect(Collectors.toList()); + boolean isAllStockUp = distributionParcelListEntities.stream().anyMatch(a -> OrderPackageStockupStatusConstant.daibeihuo.getValue().equals(a.getOrderPackageStockupStatus())); + if (isAllStockUp) { + List<DistributionParcelListEntity> unStockUpPackageData = distributionParcelListEntities.stream().filter(f1 -> OrderPackageStockupStatusConstant.daibeihuo.getValue().equals(f1.getOrderPackageStockupStatus())).collect(Collectors.toList()); + if (unStockUpPackageData.isEmpty()) { + return Resp.scanFail("扫描已完成","扫描已完成"); + } + List<Long> trayPackageIds = trayIdList.stream().map(WarehouseTrayGoodsEntity::getAssociationId).collect(Collectors.toList()); + List<DistributionParcelListEntity> packageData = unStockUpPackageData.stream().filter(f -> trayPackageIds.contains(f.getId())).collect(Collectors.toList()); + if (packageData.isEmpty()) { + return R.fail("当前托盘无此客户的货物"); + } + warehouseUpdownTypeClient.downTray(trayByTrayCode.getPalletCode(),myCurrentWarehouse.getId()); + //生成扫描数据 + List<DistributionStockEntity> stockEntityList = generateDeliveryTrayPackageStockEntity(reservationEntity,packageData,myCurrentWarehouse,user,stockupDTO.getStockupId(),stockupEntity); + if (!stockEntityList.isEmpty()) { + // 备货作业节点 + distributionStockService.saveBatch(stockEntityList); + List<Long> updatePackageIds = stockEntityList.stream().map(DistributionStockEntity::getParcelListId).collect(Collectors.toList()); + distributionParcelListService.update(Wrappers.<DistributionParcelListEntity>update().lambda() + .in(DistributionParcelListEntity::getId,updatePackageIds) + .set(DistributionParcelListEntity::getOrderPackageStockupStatus,OrderPackageStockupStatusConstant.yibeihu.getValue()) + ); + } - List<DistributionParcelListEntity> packageData = distributionParcelListEntities.stream().filter(f -> trayPackageIds.contains(f.getId())).collect(Collectors.toList()); - if (packageData.isEmpty()) { - return R.fail("当前托盘无此客户的货物"); - } - warehouseUpdownTypeClient.downTray(trayByTrayCode.getPalletCode(),myCurrentWarehouse.getId()); - //生成扫描数据 - List<DistributionStockEntity> stockEntityList = generateDeliveryTrayPackageStockEntity(reservationEntity,packageData,myCurrentWarehouse,user,stockupDTO.getStockupId()); - if (!stockEntityList.isEmpty()) { - distributionStockService.saveBatch(stockEntityList); + return Resp.scanSuccess("操作成功",""); + }else { + return Resp.scanFail("订制品备货已完成",""); } - return Resp.scanSuccess("操作成功"," "); } private List<DistributionStockEntity> generateDeliveryTrayPackageStockEntity(DistributionReservationEntity reservationEntity, List<DistributionParcelListEntity> packageData, BasicdataWarehouseEntity warehouse, BladeUser user, - Long stockUpId) { + Long stockUpId, + DistributionStockupEntity stockupEntity) { List<DistributionStockEntity> list= new ArrayList<>(); for (DistributionParcelListEntity parcelListEntity : packageData) { DistributionStockEntity distributionStockEntity = new DistributionStockEntity(); @@ -4728,6 +4744,10 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution distributionStockEntity.setScanUser(user.getNickName()); distributionStockEntity.setIsTray(Integer.parseInt(IsOrNoConstant.yes.getValue())); list.add(distributionStockEntity); + NodeFanoutMsg<StockUpVO> nodeFanoutMsg = buildStockUpNodeData(stockupEntity, distributionStockEntity, parcelListEntity); + if (ObjectUtils.isNotNull(nodeFanoutMsg)) { + distributionNodeWorkService.planStock(nodeFanoutMsg, AuthUtil.getUser()); + } } return list; } @@ -5071,7 +5091,7 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution if (parcelListEntity.getConditions() != 2) { return Resp.scanFail("当前包件不是库存品", "当前包件不是库存品"); } - if (OrderPackageGroundingStatusConstant.yishangjia.getValue().equals(parcelListEntity.getOrderPackageFreezeStatus())) { + if (OrderPackageGroundingStatusConstant.yishangjia.getValue().equals(parcelListEntity.getOrderPackageGroundingStatus())) { return Resp.scanFail("当前库存品未上架", "当前库存品未上架"); } //查询计划是否正常 @@ -5660,12 +5680,12 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution } @Override - public R handleDeliveryPackageDetailList(Long reservationId, Long orderId) { + public R handleDeliveryPackageDetailList(Long reservationId) { DistributionAppStockUpClientVO stockUpClientVO = baseMapper.selectPlanClientDetailById(reservationId); if (Objects.isNull(stockUpClientVO)){ return R.fail("查询备货客户信息错误"); } - List<DistributionAppStockUpPackageDetailVO> deliveryPackageDetailList = baseMapper.selectDeliveryPackageDetailList(reservationId,orderId); + List<DistributionAppStockUpPackageDetailVO> deliveryPackageDetailList = baseMapper.selectDeliveryPackageDetailList(reservationId); if (!deliveryPackageDetailList.isEmpty()) { stockUpClientVO.setDeliveryPackageDetailList(deliveryPackageDetailList); } @@ -5674,12 +5694,12 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution } @Override - public R handleBillPackageDetailList(Long reservationId, Long orderId) { + public R handleBillPackageDetailList(Long reservationId) { DistributionAppStockUpClientVO stockUpClientVO = baseMapper.selectPlanClientDetailById(reservationId); if (Objects.isNull(stockUpClientVO)){ return R.fail("查询备货客户信息错误"); } - List<DistributionAppStockUpPackageDetailVO> billPackageDetailList = baseMapper.selectBillPackageDetailList(reservationId,orderId); + List<DistributionAppStockUpPackageDetailVO> billPackageDetailList = baseMapper.selectBillPackageDetailList(reservationId); if (!billPackageDetailList.isEmpty()) { stockUpClientVO.setDeliveryPackageDetailList(billPackageDetailList); } @@ -5827,14 +5847,15 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution } //查询已扫备货的详情 List<DistributionAppStockUpScanDetailVO> stockUpScanDetailVO = distributionStockService.selectScanDetail(reservationId,stockupId); - return R.data(stockUpScanDetailVO); + if (!stockUpScanDetailVO.isEmpty()) { + stockUpClientVO.setStockUpScanDetailVO(stockUpScanDetailVO); + return R.data(stockUpClientVO); + } + return R.fail("无备货记录"); } @Override public R newStockupArea(StockupDTO stockupDTO) { - if (Objects.isNull(stockupDTO.getStockupId())){ - return R.fail("StockupId()参数缺失"); - } BasicdataWarehouseEntity myCurrentWarehouse = basicdataWarehouseClient.getMyCurrentWarehouse(); if (Objects.isNull(myCurrentWarehouse)) { return Resp.scanFail("请选择备货作业仓库","请选择备货作业仓库"); @@ -5843,6 +5864,7 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution return Resp.scanFail("当前仓库无部门信息","当前仓库无部门信息"); } Long stockupId = stockupDTO.getStockupId(); + String allocationCode = stockupDTO.getAllocationCode(); DistributionStockupEntity stockupEntity = this.getById(stockupId); if (Objects.isNull(stockupEntity)) { return R.fail("查询备货计划错误"); @@ -5862,7 +5884,16 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution } Long deptId = myCurrentWarehouse.getDepartment(); - return R.data(basicdataGoodsAreaClient.getDepartmentId(deptId)); + List<BasicdataGoodsAreaVO> goodsAreaVOList = basicdataGoodsAreaClient.getDepartmentId(deptId); + BasicdataGoodsAllocationEntity entityByQrCode = basicdataGoodsAllocationClient.findEntityByQrCode(myCurrentWarehouse.getId(), allocationCode); + if (Objects.isNull(entityByQrCode)){ + return Resp.scanFail("请扫描库位码","请扫描库位码"); + } + List<BasicdataGoodsAreaVO> areaVOList = goodsAreaVOList.stream().filter(f -> "1".equals(f.getAreaType()) && entityByQrCode.getGoodsAreaId().equals(f.getId())).collect(Collectors.toList()); + if (!areaVOList.isEmpty()) { + return Resp.scanFail("当前库位不是备货库位","当前库位不是备货库位"); + } + return R.data(entityByQrCode); }else { return Resp.scanFail("当前操作人无此操作权限","当前操作人无此操作权限"); } @@ -6058,13 +6089,28 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution @Override public R handleDeliveryTrayDetailList(Long reservationId) { - - return R.data(distributionReservationMapper.deliveryTrayDetailList(reservationId)); + DistributionAppStockUpClientVO stockUpClientVO = baseMapper.selectPlanClientDetailById(reservationId); + if (Objects.isNull(stockUpClientVO)){ + return R.fail("查询备货客户信息错误"); + } + List<DistributionAppStockUpTrayDetailVO> distributionAppStockUpTrayDetailVOS = distributionReservationMapper.deliveryTrayDetailList(reservationId); + if (!distributionAppStockUpTrayDetailVOS.isEmpty()) { + stockUpClientVO.setDeliveryTrayList(distributionAppStockUpTrayDetailVOS); + } + return R.data(stockUpClientVO); } @Override public R handleBillTrayDetailList(Long reservationId) { - return R.data(distrilbutionBillLadingMapper.billTrayDetailList(reservationId)); + DistributionAppStockUpClientVO stockUpClientVO = baseMapper.selectPlanClientDetailById(reservationId); + if (Objects.isNull(stockUpClientVO)){ + return R.fail("查询备货客户信息错误"); + } + List<DistributionAppStockUpTrayDetailVO> distributionAppStockUpTrayDetailVOS = distrilbutionBillLadingMapper.billTrayDetailList(reservationId); + if (!distributionAppStockUpTrayDetailVOS.isEmpty()) { + stockUpClientVO.setDeliveryTrayList(distributionAppStockUpTrayDetailVOS); + } + return R.data(stockUpClientVO); } /** From ff57ee5530baba4415afd59e03b7d5cc7054fca7 Mon Sep 17 00:00:00 2001 From: PigBaoBei <2739175034@qq.com> Date: Thu, 2 Jan 2025 10:28:20 +0800 Subject: [PATCH 08/19] =?UTF-8?q?=E5=A4=87=E8=B4=A7BUG=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/DistributionStockupServiceImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockupServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockupServiceImpl.java index 6d50cd5a7..6189c9d27 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockupServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockupServiceImpl.java @@ -5091,7 +5091,7 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution if (parcelListEntity.getConditions() != 2) { return Resp.scanFail("当前包件不是库存品", "当前包件不是库存品"); } - if (OrderPackageGroundingStatusConstant.yishangjia.getValue().equals(parcelListEntity.getOrderPackageGroundingStatus())) { + if (!OrderPackageGroundingStatusConstant.yishangjia.getValue().equals(parcelListEntity.getOrderPackageGroundingStatus())) { return Resp.scanFail("当前库存品未上架", "当前库存品未上架"); } //查询计划是否正常 @@ -6360,7 +6360,7 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution if (parcelListEntity.getConditions() != 2) { return Resp.scanFail("当前包件不是库存品", "当前包件不是库存品"); } - if (OrderPackageGroundingStatusConstant.yishangjia.getValue().equals(parcelListEntity.getOrderPackageFreezeStatus())) { + if (!OrderPackageGroundingStatusConstant.yishangjia.getValue().equals(parcelListEntity.getOrderPackageGroundingStatus())) { return Resp.scanFail("当前库存品未上架", "当前库存品未上架"); } //查询计划是否正常 From 09ed4c5f06e86f69e50b285924f78661a2f07efd Mon Sep 17 00:00:00 2001 From: PigBaoBei <2739175034@qq.com> Date: Thu, 2 Jan 2025 15:45:17 +0800 Subject: [PATCH 09/19] =?UTF-8?q?=E5=A4=87=E8=B4=A7=E6=95=B4=E6=89=98BUG?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DistributionAppStockUpTrayDetailVO.java | 9 +++---- .../api/DistributionStockupAppController.java | 7 ------ .../mapper/DistributionReservationMapper.xml | 2 +- .../DistributionReservationServiceImpl.java | 2 +- .../impl/DistributionStockupServiceImpl.java | 24 ++++++++++--------- 5 files changed, 18 insertions(+), 26 deletions(-) diff --git a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/app/DistributionAppStockUpTrayDetailVO.java b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/app/DistributionAppStockUpTrayDetailVO.java index a0e824928..5f0552576 100644 --- a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/app/DistributionAppStockUpTrayDetailVO.java +++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/app/DistributionAppStockUpTrayDetailVO.java @@ -30,12 +30,9 @@ import java.io.Serializable; public class DistributionAppStockUpTrayDetailVO implements Serializable { - private Long orderId; - private Long packageId; - private String waybillNumber; - private String orderCode; - private String categoryName; + private String trayName; + private String trayCode; private Integer planNum; - private String scanNum; + private Integer scanNum; } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/api/DistributionStockupAppController.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/api/DistributionStockupAppController.java index f7ced57ff..cbfefd589 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/api/DistributionStockupAppController.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/api/DistributionStockupAppController.java @@ -1223,14 +1223,7 @@ public class DistributionStockupAppController extends BladeController { @ApiOperationSupport(order = 1) @ApiOperation(value = "备货扫描详情", notes = "传入stockupDTO") public R stockupScanDetail(@RequestBody StockupDTO stockupDTO) { - String lockKey = "Lock:" + stockupDTO.getPacketBarCode() + stockupDTO.getStockupId(); String method = "#######################DistributionStockupAppController.newStockupScan"; - log.info("#################stockupScan:获取redisson对象开始"); - if (redis.exists(lockKey)) { - String audioValue2 = DictBizCache.getValue(DictBizConstant.PDA_AUDIO, PdaAudioLingoStatus.chongfusaomiao.getValue()); - return Resp.scanFail(PdaAudioLingoStatus.chongfusaomiao.getName(), audioValue2); - } - redis.setEx(lockKey, stockupDTO.getPacketBarCode() + stockupDTO.getStockupId(), 5L); //针对商市配、自提分别进行处理 if (Objects.isNull(stockupDTO.getReservationId())){ log.error(method+"参数:stockupDTO.getReservationId()缺失"); 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 54737cdc4..2b567acbc 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 @@ -72,7 +72,7 @@ WHERE reservation_id = #{reservationId} AND parce_list_id = #{packageId} </delete> - <select id="deliveryTrayDetailList" resultType="com.logpm.distribution.vo.app.DistributionAppStockUpScanDetailVO" > + <select id="deliveryTrayDetailList" resultType="com.logpm.distribution.vo.app.DistributionAppStockUpTrayDetailVO" > SELECT t.trayName, t.trayCode, diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionReservationServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionReservationServiceImpl.java index 8b369c3bb..02d5b33fc 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionReservationServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionReservationServiceImpl.java @@ -2030,7 +2030,7 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu //需要修改订单的状态 DistributionStockArticleDTO stockArticleDTO = Func.copy(stockArticleEntity, DistributionStockArticleDTO.class); //维护订单信息 - distributionStockArticleService.maintenanceOrderInfo(stockArticleDTO.getOrderCode(), myCurrentWarehouse.getId()); + distributionStockArticleService.maintenanceOrderInfo(stockArticleEntity.getOrderCode(), myCurrentWarehouse.getId()); distributionReservationStockarticleService.updateById(reservationStockarticleEntity); }); } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockupServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockupServiceImpl.java index 6189c9d27..20e33983a 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockupServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockupServiceImpl.java @@ -5900,6 +5900,7 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution } @Override + @Transactional public R upStockUpShelf(StockupDTO stockupDTO) { BasicdataWarehouseEntity myCurrentWarehouse = basicdataWarehouseClient.getMyCurrentWarehouse(); if (Objects.isNull(myCurrentWarehouse)){ @@ -5948,6 +5949,7 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution } @Override + @Transactional public R cancelStock(StockupDTO stockupDTO) { BasicdataWarehouseEntity myCurrentWarehouse = basicdataWarehouseClient.getMyCurrentWarehouse(); if (Objects.isNull(myCurrentWarehouse)){ @@ -5957,14 +5959,14 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution String stockIds = stockupDTO.getStockIds(); Long stockupId = stockupDTO.getStockupId(); DistributionStockupEntity stockupEntity = this.getById(stockupId); - boolean b = this.judgeIsPickingStaff(AuthUtil.getUser()); - if (!b) { - return Resp.scanFail("当前操作人无此操作权限","当前操作人无此操作权限"); - }else { - if (!stockupEntity.getForkliftId().equals(AuthUtil.getUserId())){ - return Resp.scanFail("与任务指派拣货员不一致","与任务指派拣货员不一致"); - } - } +// boolean b = this.judgeIsPickingStaff(AuthUtil.getUser()); +// if (!b) { +// return Resp.scanFail("当前操作人无此操作权限","当前操作人无此操作权限"); +// }else { +// if (!stockupEntity.getForkliftId().equals(AuthUtil.getUserId())){ +// return Resp.scanFail("与任务指派拣货员不一致","与任务指派拣货员不一致"); +// } +// } List<String> strList = Func.toStrList(stockIds); List<DistributionStockEntity> distributionStockEntities = distributionStockService.listByIds(strList); int sum = 0; @@ -6093,9 +6095,9 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution if (Objects.isNull(stockUpClientVO)){ return R.fail("查询备货客户信息错误"); } - List<DistributionAppStockUpTrayDetailVO> distributionAppStockUpTrayDetailVOS = distributionReservationMapper.deliveryTrayDetailList(reservationId); - if (!distributionAppStockUpTrayDetailVOS.isEmpty()) { - stockUpClientVO.setDeliveryTrayList(distributionAppStockUpTrayDetailVOS); + List<DistributionAppStockUpTrayDetailVO> deliveryTrayDetailList = distributionReservationMapper.deliveryTrayDetailList(reservationId); + if (!deliveryTrayDetailList.isEmpty()) { + stockUpClientVO.setDeliveryTrayList(deliveryTrayDetailList); } return R.data(stockUpClientVO); } From 9b5a71c4a93dcb51dadb7f23e8bd1c9fe74d8134 Mon Sep 17 00:00:00 2001 From: "pref_mail@163.com" <pref_mail@163.com> Date: Thu, 2 Jan 2025 22:39:21 +0800 Subject: [PATCH 10/19] =?UTF-8?q?fix=EF=BC=9A=E4=BF=AE=E5=A4=8D=E5=8F=B8?= =?UTF-8?q?=E6=9C=BA=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/BasicdataDriverArteryServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataDriverArteryServiceImpl.java b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataDriverArteryServiceImpl.java index b6735b1ba..e960d688e 100644 --- a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataDriverArteryServiceImpl.java +++ b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataDriverArteryServiceImpl.java @@ -275,7 +275,7 @@ public class BasicdataDriverArteryServiceImpl extends BaseServiceImpl<BasicdataD throw new ServiceException(phone + "手机号码已存在!"); } - R<User> userR = userClient.userInfoByPhone("627683", datum.getPhone()); + R<User> userR = userClient.userInfoByPhone(AuthUtil.getTenantId(), datum.getPhone()); if (userR.getData() == null) { // log.error("未找到用户"); // continue; From 00466bc43533a8a16f7f304ff1f13bcc020b1175 Mon Sep 17 00:00:00 2001 From: zhaoqiaobo <583671871@qq.com> Date: Fri, 3 Jan 2025 02:11:00 +0800 Subject: [PATCH 11/19] =?UTF-8?q?feat(all):=20=E6=88=91=E4=B9=90=E5=B7=A5?= =?UTF-8?q?=E5=8E=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1 增加我乐数据回传机制 --- .../factorydata/olo/job/PushDataJob.java | 29 ++++ .../olo/mapper/DeliveryNoteMapper.java | 4 + .../olo/mapper/FactoryNodeAllPushMapper.java | 2 + .../olo/mapper/FactoryNodeAllPushMapper.xml | 9 ++ .../olo/mapper/FactoryNodeOrderMapper.xml | 12 ++ .../olo/mq/NodeDataPushListener.java | 7 +- .../olo/service/DeliveryNoteService.java | 3 + .../service/FactoryNodeAllPushService.java | 2 + .../service/impl/DeliveryNoteServiceImpl.java | 152 +++++++++++++++++- .../impl/FactoryNodeAllPushServiceImpl.java | 4 + 10 files changed, 221 insertions(+), 3 deletions(-) diff --git a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/job/PushDataJob.java b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/job/PushDataJob.java index b20224ba2..f03015c6e 100644 --- a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/job/PushDataJob.java +++ b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/job/PushDataJob.java @@ -45,6 +45,35 @@ public class PushDataJob { return ReturnT.SUCCESS; } + /** + * 补传我乐到达节点数据 + * + * @param param + * @return + * @throws Exception + */ + @XxlJob("rePushOloNodeData") + public ReturnT<String> rePushOloNodeData(String param) throws Exception { + deliveryNoteService.rePushOloNodeData(); + return ReturnT.SUCCESS; + } + + /** + * 补传我乐到达节点数据-指定订单 分单 回传 + * + * @param param + * @return + * @throws Exception + */ + @XxlJob("rePushOloNodeDataByCode") + public ReturnT<String> rePushOloNodeDataByCode(String param) throws Exception { + if (StrUtil.isEmpty(param)) { + return ReturnT.SUCCESS; + } + deliveryNoteService.rePushOloNodeDataByCode(param); + return ReturnT.SUCCESS; + } + /** * 自定义回传工厂节点作业数据 * diff --git a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mapper/DeliveryNoteMapper.java b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mapper/DeliveryNoteMapper.java index 966cc4ecd..c0fb840e9 100644 --- a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mapper/DeliveryNoteMapper.java +++ b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mapper/DeliveryNoteMapper.java @@ -6,6 +6,8 @@ import com.logpm.factorydata.olo.entity.DeliveryNoteEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.util.List; + /** * 发货单 mapper * @@ -18,4 +20,6 @@ public interface DeliveryNoteMapper extends BaseMapper<DeliveryNoteEntity> { JSONObject customPushNodeData(); void updateSustomPushNodeDataStatus(@Param("status") String status, @Param("orderNo") String orderNo, @Param("deliveryNo") String deliveryNo); + + List<DeliveryNoteEntity> rePushOloNodeData(@Param("orderCode") String orderCode, @Param("shipmentCode") String shipmentCode, @Param("shipmentSpitCode") String shipmentSpitCode); } diff --git a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mapper/FactoryNodeAllPushMapper.java b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mapper/FactoryNodeAllPushMapper.java index b4d260348..0f91841fe 100644 --- a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mapper/FactoryNodeAllPushMapper.java +++ b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mapper/FactoryNodeAllPushMapper.java @@ -13,4 +13,6 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface FactoryNodeAllPushMapper extends BaseMapper<FactoryNodeAllPushEntity> { + FactoryNodeAllPushEntity rePushOloNodeData(); + } diff --git a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mapper/FactoryNodeAllPushMapper.xml b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mapper/FactoryNodeAllPushMapper.xml index 2380ff654..d0385901e 100644 --- a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mapper/FactoryNodeAllPushMapper.xml +++ b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mapper/FactoryNodeAllPushMapper.xml @@ -2,4 +2,13 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.logpm.factorydata.olo.mapper.FactoryNodeAllPushMapper"> + <select id="rePushOloNodeData" resultType="com.logpm.factorydata.olo.entity.FactoryNodeAllPushEntity"> + select * + from olo_factory_node_all_push + where reserve1 != reserve2 + and reserve1 is not null + and reserve2 is not null + and type_code = 1 + limit 1 + </select> </mapper> diff --git a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mapper/FactoryNodeOrderMapper.xml b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mapper/FactoryNodeOrderMapper.xml index ba7bc0baa..82c6a7d8d 100644 --- a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mapper/FactoryNodeOrderMapper.xml +++ b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mapper/FactoryNodeOrderMapper.xml @@ -23,4 +23,16 @@ and orderNo = #{orderNo} and deliveryNo = #{deliveryNo} </update> + + <select id="rePushOloNodeData" resultType="com.logpm.factorydata.olo.entity.DeliveryNoteEntity"> + select * + from olo_delivery_note + where + (flag is null or flag = 'A') + and shipment_type_desc != '快递' + and shipment_type_desc != '包车' + and shipment_no = #{shipmentCode} + and shipment_split_no = #{shipmentSpitCode} + and crm_so = #{orderCode} + </select> </mapper> diff --git a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mq/NodeDataPushListener.java b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mq/NodeDataPushListener.java index 2d1636412..4b9d6061f 100644 --- a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mq/NodeDataPushListener.java +++ b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mq/NodeDataPushListener.java @@ -33,7 +33,6 @@ import org.springframework.amqp.rabbit.annotation.Queue; import org.springframework.amqp.rabbit.annotation.QueueBinding; import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.stereotype.Component; -import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.HashMap; @@ -203,7 +202,11 @@ public class NodeDataPushListener { pushAllEntities.add(factoryNodeAllPushEntity); for (Map.Entry<String, Integer> stringIntegerEntry : snMap.entrySet()) { JSONObject jsonObject = new JSONObject(); - jsonObject.set("sn", stringIntegerEntry.getKey()); + String key = stringIntegerEntry.getKey(); + if (StrUtil.contains(key, "补")) { + key = key.split("-")[0]; + } + jsonObject.set("sn", key); jsonObject.set("qty", stringIntegerEntry.getValue()); jsonObject.set("scanTime", entries.getStr("operatorTime")); snArray.add(jsonObject); diff --git a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/service/DeliveryNoteService.java b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/service/DeliveryNoteService.java index cc0382041..2c0512b5c 100644 --- a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/service/DeliveryNoteService.java +++ b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/service/DeliveryNoteService.java @@ -26,4 +26,7 @@ public interface DeliveryNoteService extends BaseService<DeliveryNoteEntity> { **/ void customPushNodeData(); + void rePushOloNodeData(); + + void rePushOloNodeDataByCode(String param); } diff --git a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/service/FactoryNodeAllPushService.java b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/service/FactoryNodeAllPushService.java index 960bba781..25507b82f 100644 --- a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/service/FactoryNodeAllPushService.java +++ b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/service/FactoryNodeAllPushService.java @@ -11,4 +11,6 @@ import org.springblade.core.mp.base.BaseService; **/ public interface FactoryNodeAllPushService extends BaseService<FactoryNodeAllPushEntity> { + FactoryNodeAllPushEntity rePushOloNodeData(); + } diff --git a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/service/impl/DeliveryNoteServiceImpl.java b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/service/impl/DeliveryNoteServiceImpl.java index 20b671209..612c08631 100644 --- a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/service/impl/DeliveryNoteServiceImpl.java +++ b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/service/impl/DeliveryNoteServiceImpl.java @@ -1,9 +1,11 @@ package com.logpm.factorydata.olo.service.impl; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.convert.Convert; import cn.hutool.core.date.DateUtil; import cn.hutool.core.io.FileUtil; +import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.http.HttpUtil; @@ -16,10 +18,12 @@ import com.logpm.factorydata.enums.BrandEnums; import com.logpm.factorydata.enums.SaxStatusEnums; import com.logpm.factorydata.feign.IFactoryDataClient; import com.logpm.factorydata.olo.entity.DeliveryNoteEntity; +import com.logpm.factorydata.olo.entity.FactoryNodeAllPushEntity; import com.logpm.factorydata.olo.entity.FactoryOrderLogEntity; import com.logpm.factorydata.olo.mapper.DeliveryNoteMapper; import com.logpm.factorydata.olo.pros.OldProperties; import com.logpm.factorydata.olo.service.DeliveryNoteService; +import com.logpm.factorydata.olo.service.FactoryNodeAllPushService; import com.logpm.factorydata.olo.service.FactoryOrderLogService; import com.logpm.factorydata.olo.vo.DeliveryNoteVO; import com.logpm.factorydata.vo.SendMsg; @@ -54,8 +58,11 @@ import java.time.LocalDateTime; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; /** * 发货单 业务实现类 @@ -74,6 +81,7 @@ public class DeliveryNoteServiceImpl extends BaseServiceImpl<DeliveryNoteMapper, private final IFactoryDataBaseClient baseClient; private final OldProperties oldProperties; private final RabbitTemplate rabbitTemplate; + private final FactoryNodeAllPushService factoryNodeAllPushService; @Override public String order(List<DeliveryNoteVO> vo) { @@ -213,7 +221,7 @@ public class DeliveryNoteServiceImpl extends BaseServiceImpl<DeliveryNoteMapper, advanceDetailEntity.setQuantity(1); // 按老系统生成新的逻辑的包件号 OLO2312064418-20231226010129-1-001 // 标准台面全部使用新码,其他的数量大于 1 的使用新码 - if (StrUtil.equals(orderPackageDTO.getType(),"标准台面") || anInt > 1) { + if (StrUtil.equals(orderPackageDTO.getType(), "标准台面") || anInt > 1) { advanceDetailEntity.setOrderPackageCode("OLO" + orderPackageDTO.getSn() + "-" + DateUtil.format(new Date(), "yyyyMMddHHmmss") + "-" + num + "-" + StrUtil.padPre(String.valueOf(i + 1), 3, "0")); } else { advanceDetailEntity.setOrderPackageCode(orderPackageDTO.getSn()); @@ -292,6 +300,148 @@ public class DeliveryNoteServiceImpl extends BaseServiceImpl<DeliveryNoteMapper, } } + @Override + public void rePushOloNodeData() { + // 查出少推送的数据 + FactoryNodeAllPushEntity entity = factoryNodeAllPushService.rePushOloNodeData(); + if (ObjectUtil.isNotEmpty(entity)) { + String content = entity.getContent(); + Date createTime = entity.getCreateTime(); + JSONObject entries = JSONUtil.parseObj(content); + entries.set("snList", null); + String packageCodes = entity.getPackageCode(); + String[] split = packageCodes.split(","); + Set<String> packageCodeSet = new HashSet<>(); + for (String s : split) { + if (StrUtil.contains(s, "补")) { + continue; + } + packageCodeSet.add(s); + } + String orderCode = entity.getOrderCode(); + String shipmentCode = entity.getShipmentCode(); + String shipmentSpitCode = entity.getShipmentSpitCode(); + List<DeliveryNoteEntity> list = this.baseMapper.rePushOloNodeData(orderCode, shipmentCode, shipmentSpitCode); + if (CollUtil.isNotEmpty(list)) { + List<DeliveryNoteEntity> sns = list.stream().filter(s -> !packageCodeSet.contains(s.getSn())).map(deliveryNoteEntity -> { + String sn = deliveryNoteEntity.getSn(); + if (StrUtil.contains(sn, "补")) { + sn = sn.split("-")[0]; + } + deliveryNoteEntity.setSn(sn); + return deliveryNoteEntity; + }).collect(Collectors.toList()); + if (CollUtil.isNotEmpty(sns)) { + JSONArray snArray = new JSONArray(); + for (DeliveryNoteEntity sn : sns) { + JSONObject jsonObject = new JSONObject(); + jsonObject.set("sn", sn.getSn()); + jsonObject.set("qty", sn.getQty()); + jsonObject.set("scanTime", DateUtil.formatDateTime(createTime)); + snArray.add(jsonObject); + } + entries.set("snList", snArray); + String post = HttpUtil.post(entity.getSendUrl(), JSONUtil.toJsonStr(entries)); + FactoryNodeAllPushEntity pushAllEntity = new FactoryNodeAllPushEntity(); + BeanUtil.copyProperties(entity, pushAllEntity); + pushAllEntity.setId(null); + try { + JSONObject entries1 = JSONUtil.parseObj(post); + Integer code = entries1.getInt("code"); + String data = entries1.getStr("data"); + // 成功 + Integer successCode = code; + String message = data; + if (NumberUtil.equals(code, 200)) { + if (StrUtil.isNotEmpty(data)) { + JSONObject jsonObject = JSONUtil.parseObj(data); + Integer code1 = jsonObject.getInt("code"); + successCode = code1; + } + } + pushAllEntity.setPackageCode(sns.stream().map(DeliveryNoteEntity::getSn).collect(Collectors.joining(","))); + pushAllEntity.setSendStatus(successCode + ""); + pushAllEntity.setContent(JSONUtil.toJsonStr(entries)); + pushAllEntity.setResultContent(message); + pushAllEntity.setReserve1(Convert.toStr(sns.size())); + pushAllEntity.setReserve2(Convert.toStr(sns.size())); + factoryNodeAllPushService.save(pushAllEntity); + } catch (Exception e) { + log.error("解析返回值失败"); + } + } + } + entity.setReserve1(entity.getReserve2()); + factoryNodeAllPushService.updateById(entity); + } + + } + + @Override + public void rePushOloNodeDataByCode(String param) { + JSONObject entries = JSONUtil.parseObj(param); + String orderCode = entries.getStr("orderCode"); + String shipmentCode = entries.getStr("shipmentCode"); + String shipmentSpitCode = entries.getStr("shipmentSpitCode"); + List<DeliveryNoteEntity> list = this.baseMapper.rePushOloNodeData(orderCode, shipmentCode, shipmentSpitCode); + if (CollUtil.isNotEmpty(list)) { + List<DeliveryNoteEntity> sns = list.stream().map(deliveryNoteEntity -> { + String sn = deliveryNoteEntity.getSn(); + if (StrUtil.contains(sn, "补")) { + sn = sn.split("-")[0]; + } + deliveryNoteEntity.setSn(sn); + return deliveryNoteEntity; + }).collect(Collectors.toList()); + if (CollUtil.isNotEmpty(sns)) { + JSONArray snArray = new JSONArray(); + for (DeliveryNoteEntity sn : sns) { + JSONObject jsonObject = new JSONObject(); + jsonObject.set("sn", sn.getSn()); + jsonObject.set("qty", sn.getQty()); + jsonObject.set("scanTime", DateUtil.formatDateTime(new Date())); + snArray.add(jsonObject); + } + entries.set("snList", snArray); + String post = HttpUtil.post(oldProperties.getPushNodeUrl(), JSONUtil.toJsonStr(entries)); + FactoryNodeAllPushEntity pushAllEntity = new FactoryNodeAllPushEntity(); + pushAllEntity.setWarehouse(entries.getStr("nodeName")); + pushAllEntity.setWorkBatch(orderCode); + pushAllEntity.setSendUrl(oldProperties.getPushNodeUrl()); + pushAllEntity.setOrderCode(orderCode); + pushAllEntity.setShipmentCode(shipmentCode); + pushAllEntity.setShipmentSpitCode(shipmentSpitCode); + pushAllEntity.setType(entries.getStr("content")); + pushAllEntity.setWaybillCode(entries.getStr("deliveryNo")); + pushAllEntity.setTypeCode(entries.getInt("siteLevel")); + try { + JSONObject entries1 = JSONUtil.parseObj(post); + Integer code = entries1.getInt("code"); + String data = entries1.getStr("data"); + // 成功 + Integer successCode = code; + String message = data; + if (NumberUtil.equals(code, 200)) { + if (StrUtil.isNotEmpty(data)) { + JSONObject jsonObject = JSONUtil.parseObj(data); + Integer code1 = jsonObject.getInt("code"); + successCode = code1; + } + } + pushAllEntity.setPackageCode(sns.stream().map(DeliveryNoteEntity::getSn).collect(Collectors.joining(","))); + pushAllEntity.setSendStatus(successCode + ""); + pushAllEntity.setContent(JSONUtil.toJsonStr(entries)); + pushAllEntity.setResultContent(message); + pushAllEntity.setReserve1(Convert.toStr(sns.size())); + pushAllEntity.setReserve2(Convert.toStr(sns.size())); + factoryNodeAllPushService.save(pushAllEntity); + } catch (Exception e) { + log.error("解析返回值失败"); + } + } + } + } + private String uploadFile(String body) { // 文本内容和保存为本地文件 并上传 String logPath = FileLogsUtil.saveFileLogs(body); diff --git a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/service/impl/FactoryNodeAllPushServiceImpl.java b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/service/impl/FactoryNodeAllPushServiceImpl.java index d6f91f383..d05c664c0 100644 --- a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/service/impl/FactoryNodeAllPushServiceImpl.java +++ b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/service/impl/FactoryNodeAllPushServiceImpl.java @@ -19,4 +19,8 @@ import org.springframework.stereotype.Service; @AllArgsConstructor public class FactoryNodeAllPushServiceImpl extends BaseServiceImpl<FactoryNodeAllPushMapper, FactoryNodeAllPushEntity> implements FactoryNodeAllPushService { + @Override + public FactoryNodeAllPushEntity rePushOloNodeData() { + return this.baseMapper.rePushOloNodeData(); + } } From 3df8a7e2128e2cda92b62d868addaee4906f9677 Mon Sep 17 00:00:00 2001 From: zhaoqiaobo <583671871@qq.com> Date: Fri, 3 Jan 2025 14:41:34 +0800 Subject: [PATCH 12/19] =?UTF-8?q?feat(all):=20=E6=88=91=E4=B9=90=E5=B7=A5?= =?UTF-8?q?=E5=8E=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1 增加我乐数据回传机制 --- .../factorydata/olo/service/impl/DeliveryNoteServiceImpl.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/service/impl/DeliveryNoteServiceImpl.java b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/service/impl/DeliveryNoteServiceImpl.java index 612c08631..d0d2c7298 100644 --- a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/service/impl/DeliveryNoteServiceImpl.java +++ b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/service/impl/DeliveryNoteServiceImpl.java @@ -341,7 +341,9 @@ public class DeliveryNoteServiceImpl extends BaseServiceImpl<DeliveryNoteMapper, snArray.add(jsonObject); } entries.set("snList", snArray); - String post = HttpUtil.post(entity.getSendUrl(), JSONUtil.toJsonStr(entries)); + JSONArray objects = new JSONArray(); + objects.add(entries); + String post = HttpUtil.post(entity.getSendUrl(), JSONUtil.toJsonStr(objects)); FactoryNodeAllPushEntity pushAllEntity = new FactoryNodeAllPushEntity(); BeanUtil.copyProperties(entity, pushAllEntity); pushAllEntity.setId(null); From 59f843ab3228791ee74e90a96829bac81e0be379 Mon Sep 17 00:00:00 2001 From: zhaoqiaobo <583671871@qq.com> Date: Fri, 3 Jan 2025 14:42:50 +0800 Subject: [PATCH 13/19] =?UTF-8?q?feat(all):=20=E6=88=91=E4=B9=90=E5=B7=A5?= =?UTF-8?q?=E5=8E=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1 增加我乐数据回传机制 --- .../factorydata/olo/service/impl/DeliveryNoteServiceImpl.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/service/impl/DeliveryNoteServiceImpl.java b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/service/impl/DeliveryNoteServiceImpl.java index d0d2c7298..e881e7949 100644 --- a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/service/impl/DeliveryNoteServiceImpl.java +++ b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/service/impl/DeliveryNoteServiceImpl.java @@ -405,7 +405,9 @@ public class DeliveryNoteServiceImpl extends BaseServiceImpl<DeliveryNoteMapper, snArray.add(jsonObject); } entries.set("snList", snArray); - String post = HttpUtil.post(oldProperties.getPushNodeUrl(), JSONUtil.toJsonStr(entries)); + JSONArray objects = new JSONArray(); + objects.add(entries); + String post = HttpUtil.post(oldProperties.getPushNodeUrl(), JSONUtil.toJsonStr(objects)); FactoryNodeAllPushEntity pushAllEntity = new FactoryNodeAllPushEntity(); pushAllEntity.setWarehouse(entries.getStr("nodeName")); pushAllEntity.setWorkBatch(orderCode); From 159ed07112a6c5ba59d2b12149e09c88bb9c07e4 Mon Sep 17 00:00:00 2001 From: zhaoqiaobo <583671871@qq.com> Date: Fri, 3 Jan 2025 15:39:29 +0800 Subject: [PATCH 14/19] =?UTF-8?q?feat(all):=20=E6=88=91=E4=B9=90=E5=B7=A5?= =?UTF-8?q?=E5=8E=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1 增加我乐数据回传机制 --- .../olo/service/impl/DeliveryNoteServiceImpl.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/service/impl/DeliveryNoteServiceImpl.java b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/service/impl/DeliveryNoteServiceImpl.java index e881e7949..63567de39 100644 --- a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/service/impl/DeliveryNoteServiceImpl.java +++ b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/service/impl/DeliveryNoteServiceImpl.java @@ -382,9 +382,9 @@ public class DeliveryNoteServiceImpl extends BaseServiceImpl<DeliveryNoteMapper, @Override public void rePushOloNodeDataByCode(String param) { JSONObject entries = JSONUtil.parseObj(param); - String orderCode = entries.getStr("orderCode"); - String shipmentCode = entries.getStr("shipmentCode"); - String shipmentSpitCode = entries.getStr("shipmentSpitCode"); + String orderCode = entries.getStr("orderNo"); + String shipmentCode = entries.getStr("shipmentNo"); + String shipmentSpitCode = entries.getStr("shipmentSplitNo"); List<DeliveryNoteEntity> list = this.baseMapper.rePushOloNodeData(orderCode, shipmentCode, shipmentSpitCode); if (CollUtil.isNotEmpty(list)) { List<DeliveryNoteEntity> sns = list.stream().map(deliveryNoteEntity -> { From 02fd59cc621aede55e6177390722ae16ca635c1a Mon Sep 17 00:00:00 2001 From: PigBaoBei <2739175034@qq.com> Date: Fri, 3 Jan 2025 15:48:54 +0800 Subject: [PATCH 15/19] =?UTF-8?q?=E5=A4=87=E8=B4=A7=E6=89=AB=E6=8F=8FBUG?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/DistributionDeliveryListServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 ead1eba39..4ce786c50 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 @@ -3295,7 +3295,7 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib if (Func.isEmpty(list)) { log.error("###########################预约包件查询错误:{}", list); log.error("###########################查询错误预约Id:{}", reservationEntity.getId()); - throw new RuntimeException(reservationEntity.getId()+"订单信息错误:"+s.getId()); + throw new RuntimeException(s.getOrderCode()+"订单信息错误"); } //list 对这个集合 按照getParceListId 进行分组 Map<String, List<DistributionReservationPackageEntity>> oldPackageList = list.stream().collect(Collectors.groupingBy(DistributionReservationPackageEntity::getPacketBarCode)); From 7c05a4f5aa02d768b6772cd58038c051d1d303ae Mon Sep 17 00:00:00 2001 From: PigBaoBei <2739175034@qq.com> Date: Fri, 3 Jan 2025 16:23:17 +0800 Subject: [PATCH 16/19] =?UTF-8?q?=E5=A4=87=E8=B4=A7=E6=89=AB=E6=8F=8FBUG?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/DistributionStockupServiceImpl.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockupServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockupServiceImpl.java index 20e33983a..971d537d5 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockupServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockupServiceImpl.java @@ -5919,7 +5919,7 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution boolean b = this.judgeIsPickingStaff(AuthUtil.getUser()); if (!b) { return Resp.scanFail("当前操作人无此操作权限","当前操作人无此操作权限"); - }else { + } else { if (!stockupEntity.getForkliftId().equals(AuthUtil.getUserId())){ return Resp.scanFail("与任务指派拣货员不一致","与任务指派拣货员不一致"); } @@ -5992,7 +5992,7 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution } } - return R.fail("取消成功"+sum+"件"); + return Resp.scanSuccess("取消成功"+sum+"件","取消成功"+sum+"件"); } private List<DistributionAppStockUpZeroOrderDetailVO> handleStockupBillZeroOrder(DistrilbutionBillLadingEntity billLadingEntity) { @@ -6553,6 +6553,9 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution .eq(DistrilbutionBillPackageEntity::getPacketBarCode, packetBarCode) .ne(DistrilbutionBillPackageEntity::getPacketBarStatus, ReservationPackageStatusConstant.quxiao.getValue()) ); + if(packageEntityList.isEmpty()){ + return Resp.scanFail("不在此备货计划中","不在此备货计划中"); + } if (packageEntityList.size() > 1) { return Resp.scanFail("当前包件计划重复", "当前包件计划重复"); } @@ -6653,8 +6656,8 @@ public class DistributionStockupServiceImpl extends BaseServiceImpl<Distribution .eq(DistributionReservationPackageEntity::getPacketBarCode, packetBarCode) .ne(DistributionReservationPackageEntity::getPacketBarStatus, ReservationPackageStatusConstant.quxiao.getValue()) ); - if (!packageEntityList.isEmpty()) { - return Resp.scanFail("无此备货计划","无此备货计划"); + if (packageEntityList.isEmpty()) { + return Resp.scanFail("不在此备货计划中","不在此备货计划中"); } if (packageEntityList.size() > 1) { return Resp.scanFail("当前包件计划重复", "当前包件计划重复"); From ee58c6ba755bb2fba692ecc24c078e9e517ba894 Mon Sep 17 00:00:00 2001 From: zhenghaoyu <zhenghaoyu@superbgrace.com> Date: Fri, 3 Jan 2025 17:55:21 +0800 Subject: [PATCH 17/19] =?UTF-8?q?1.=E6=97=B6=E6=95=88=E6=8A=A5=E8=A1=A8bug?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=202.=E5=AE=A1=E6=A0=B8=E8=BF=90=E5=8D=95?= =?UTF-8?q?=E9=80=BB=E8=BE=91=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/application-prod.yml | 2 + .../listener/mq/WaybillCheckListener.java | 19 +++++++-- .../service/impl/OpenOrderServiceImpl.java | 7 +++- .../impl/TrunklineCarsLoadServiceImpl.java | 42 ++++++++++--------- .../WarehouseWaybillController.java | 15 +++++++ .../mapper/WarehouseWaybillMapper.java | 2 + .../mapper/WarehouseWaybillMapper.xml | 4 ++ .../service/IWarehouseWaybillService.java | 2 + .../impl/WarehouseTrayTypeServiceImpl.java | 24 ++++++++++- .../impl/WarehouseWaybillServiceImpl.java | 22 ++++++++++ .../src/main/resources/luascript/resubmit.lua | 12 ++++++ 11 files changed, 123 insertions(+), 28 deletions(-) create mode 100644 blade-service/logpm-warehouse/src/main/resources/luascript/resubmit.lua diff --git a/blade-service/logpm-report/src/main/resources/application-prod.yml b/blade-service/logpm-report/src/main/resources/application-prod.yml index e75326109..d2d395e11 100644 --- a/blade-service/logpm-report/src/main/resources/application-prod.yml +++ b/blade-service/logpm-report/src/main/resources/application-prod.yml @@ -22,6 +22,8 @@ spring: proxy-filters: - sqlLogInterceptor query-timeout: 60000 + time-between-eviction-runs-millis: 60000 + min-evictable-idle-time-millis: 300000 #设置默认的数据源或者数据源组,默认值即为master primary: master datasource: diff --git a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/listener/mq/WaybillCheckListener.java b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/listener/mq/WaybillCheckListener.java index ca03ccecf..6a168c70a 100644 --- a/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/listener/mq/WaybillCheckListener.java +++ b/blade-service/logpm-statisticsdata/src/main/java/com/logpm/statistics/listener/mq/WaybillCheckListener.java @@ -5,7 +5,8 @@ import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; -import com.logpm.basicdata.feign.IBasicdataWarehouseClient; +import com.logpm.basicdata.entity.BasicdataClientEntity; +import com.logpm.basicdata.feign.IBasicdataClientClient; import com.logpm.distribution.feign.IDistributionParcelListClient; import com.logpm.statistics.entity.*; import com.logpm.statistics.service.*; @@ -14,7 +15,6 @@ import com.logpm.trunkline.entity.TrunklineAdvanceDetailEntity; import com.logpm.trunkline.entity.TrunklineAdvanceEntity; import com.logpm.trunkline.feign.ITrunklineAdvanceClient; import com.logpm.trunkline.feign.ITrunklineAdvanceDetailClient; -import com.logpm.trunkline.feign.ITrunklineWaybillOrderClient; import com.logpm.warehouse.entity.WarehouseWayBillDetail; import com.logpm.warehouse.entity.WarehouseWaybillEntity; import com.logpm.warehouse.feign.IWarehouseWaybillClient; @@ -30,7 +30,6 @@ import org.springframework.amqp.rabbit.annotation.Queue; import org.springframework.amqp.rabbit.annotation.QueueBinding; import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.stereotype.Component; -import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.util.*; @@ -52,6 +51,7 @@ public class WaybillCheckListener { private final IStatisticsDistributionPackageService distributionPackageService; private final IStatisticsBalanceOrderInfoService balanceOrderInfoService; private final IDistributionParcelListClient distributionParcelListClient; + private final IBasicdataClientClient basicdataClientClient; @RabbitListener(bindings = @QueueBinding( value = @Queue(name = FanoutConstants.trunkline.CHECKWAYBILL.QUEUE.CHECKWAYBILL_INCOMINGDATA), @@ -200,6 +200,10 @@ public class WaybillCheckListener { Long consigneeId = waybillEntity.getConsigneeId(); String consignee = waybillEntity.getConsignee(); Integer serviceType = waybillEntity.getServiceType(); + BasicdataClientEntity basicdataClient = basicdataClientClient.findEntityById(consigneeId); + if(!Objects.isNull(basicdataClient)){ + serviceType=basicdataClient.getTypeService(); + } String payWay = waybillEntity.getPayWay(); Long departureWarehouseId = waybillEntity.getDepartureWarehouseId(); String departureWarehouseName = waybillEntity.getDepartureWarehouseName(); @@ -482,6 +486,10 @@ public class WaybillCheckListener { Long consigneeId = waybillEntity.getConsigneeId(); String consignee = waybillEntity.getConsignee(); Integer serviceType = waybillEntity.getServiceType(); + BasicdataClientEntity basicdataClient = basicdataClientClient.findEntityById(consigneeId); + if(!Objects.isNull(basicdataClient)){ + serviceType=basicdataClient.getTypeService(); + } String payWay = waybillEntity.getPayWay(); Long departureWarehouseId = waybillEntity.getDepartureWarehouseId(); String departureWarehouseName = waybillEntity.getDepartureWarehouseName(); @@ -491,6 +499,8 @@ public class WaybillCheckListener { Integer pickupCompleteOrNot = waybillEntity.getPickupCompleteOrNot(); Date signTime = waybillEntity.getSignTime(); + + //单价计算 // BigDecimal pickupFee = Objects.isNull(waybillEntity.getPickupFee())?BigDecimal.ZERO:waybillEntity.getPickupFee(); BigDecimal warehouseManagementFee = Objects.isNull(waybillEntity.getWarehouseManagementFee()) ? BigDecimal.ZERO : waybillEntity.getWarehouseManagementFee(); @@ -546,6 +556,7 @@ public class WaybillCheckListener { //保存订单信息 List<StatisticsOrderInfoEntity> orderInfoEntities = new ArrayList<>(); + Integer finalServiceType = serviceType; advanceEntities.forEach(advanceEntity -> { StatisticsOrderInfoEntity orderInfoEntity = new StatisticsOrderInfoEntity(); orderInfoEntity.setOrderCode(advanceEntity.getOrderCode()); @@ -555,7 +566,7 @@ public class WaybillCheckListener { orderInfoEntity.setBrand(brand); orderInfoEntity.setConsigneeId(consigneeId); orderInfoEntity.setConsignee(consignee); - orderInfoEntity.setTypeService(serviceType); + orderInfoEntity.setTypeService(finalServiceType); orderInfoEntity.setSignDate(signTime); orderInfoEntity.setSignStatus(0); orderInfoEntity.setSyncFeeStatus(0); diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/OpenOrderServiceImpl.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/OpenOrderServiceImpl.java index 805a58906..9bc2b3f04 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/OpenOrderServiceImpl.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/OpenOrderServiceImpl.java @@ -916,8 +916,11 @@ public class OpenOrderServiceImpl implements IOpenOrderService { } //修改暂存单明细的结算品类 - advanceDetailService.updateBatchById(updateAdvanceDetailList); - + //把updateAdvanceDetailList分成每300条一组 + List<List<TrunklineAdvanceDetailEntity>> updateAdvanceDetailListList = CollUtil.split(updateAdvanceDetailList, 300); + updateAdvanceDetailListList.forEach(updateAdvanceDetailList1 -> { + advanceDetailService.updateBatchById(updateAdvanceDetailList1); + }); trunklineWaybillPackageService.updateWaybillStatus(waybillEntity); diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java index 8762d23e0..f1ea2521c 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java @@ -10951,27 +10951,29 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL //查询已装车的零担 List<LoadZeroListVO> zeroList = trunklineCarsOrderService.findZeroList(loadId, warehouseId); - zeroList.forEach(loadZeroListVO -> { - String waybillNo = loadZeroListVO.getWaybillNo(); - String orderCode = loadZeroListVO.getOrderCode(); - List<GoodsLoadingNumVO> loadingNumVOList = scanZeroDetailService.findGoodsLoadingNum(loadId,warehouseId,waybillNo,orderCode); - //把loadingNumVOList转化成以goodsId作为key的Map - Map<Long, GoodsLoadingNumVO> map = loadingNumVOList.stream().collect(Collectors.toMap(GoodsLoadingNumVO::getGoodsId, Function.identity())); - List<JSONObject> zeroPackageList = distributionParcelListClient.findPackageGoodsListByWaybillNoAndWarehouseId(waybillNo,warehouseId); - List<ZeroPackageVO> ls = new ArrayList<>(); - zeroPackageList.forEach(jsonObject -> { - ZeroPackageVO javaObject = jsonObject.toJavaObject(ZeroPackageVO.class); - Long goodsId = javaObject.getGoodsId(); - GoodsLoadingNumVO goodsLoadingNumVO = map.get(goodsId); - if(Objects.isNull(goodsLoadingNumVO)){ - javaObject.setLoadingNum(0); - }else{ - javaObject.setLoadingNum(goodsLoadingNumVO.getLoadingNum()); - } - ls.add(javaObject); + if(CollUtil.isNotEmpty(zeroList)){ + zeroList.forEach(loadZeroListVO -> { + String waybillNo = loadZeroListVO.getWaybillNo(); + String orderCode = loadZeroListVO.getOrderCode(); + List<GoodsLoadingNumVO> loadingNumVOList = scanZeroDetailService.findGoodsLoadingNum(loadId,warehouseId,waybillNo,orderCode); + //把loadingNumVOList转化成以goodsId作为key的Map + Map<Long, GoodsLoadingNumVO> map = loadingNumVOList.stream().collect(Collectors.toMap(GoodsLoadingNumVO::getGoodsId, Function.identity())); + List<JSONObject> zeroPackageList = distributionParcelListClient.findPackageGoodsListByWaybillNoAndWarehouseId(waybillNo,warehouseId); + List<ZeroPackageVO> ls = new ArrayList<>(); + zeroPackageList.forEach(jsonObject -> { + ZeroPackageVO javaObject = jsonObject.toJavaObject(ZeroPackageVO.class); + Long goodsId = javaObject.getGoodsId(); + GoodsLoadingNumVO goodsLoadingNumVO = map.get(goodsId); + if(Objects.isNull(goodsLoadingNumVO)){ + javaObject.setLoadingNum(0); + }else{ + javaObject.setLoadingNum(goodsLoadingNumVO.getLoadingNum()); + } + ls.add(javaObject); + }); + loadZeroListVO.setZeroPackageList(ls); }); - loadZeroListVO.setZeroPackageList(ls); - }); + } //查询异常列表 diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/controller/WarehouseWaybillController.java b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/controller/WarehouseWaybillController.java index 19cac21f6..c610725cc 100644 --- a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/controller/WarehouseWaybillController.java +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/controller/WarehouseWaybillController.java @@ -438,4 +438,19 @@ public class WarehouseWaybillController extends BladeController { } + @PostMapping("/updateWaybillTypeService") + @ApiOperationSupport(order = 2) + @ApiOperation(value = "修改运单的服务类型 ") + public R updateWaybillTypeService(@RequestBody WarehouseWaybillDTO waybillDTO) { + try { + log.info(">>>>>>>>>>>>>>>>>> updateWaybillTypeService: waybillDTO={}",waybillDTO); + return warehouseWaybillService.updateWaybillTypeService(waybillDTO); + } catch (Exception e) { + return R.fail(e.getMessage()); + } + + } + + + } diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseWaybillMapper.java b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseWaybillMapper.java index 374ddeb28..1f84fc81b 100644 --- a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseWaybillMapper.java +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseWaybillMapper.java @@ -83,4 +83,6 @@ public interface WarehouseWaybillMapper extends BaseMapper<WarehouseWaybillEntit void updateWaybillCondigneeIdToNull(@Param("waybillId") Long waybillId); List<WarehouseWaybillEntity> findWaybillVOByOrderCode(@Param("orderCode") String orderCode); + + void updateWaybillTypeService(@Param("serviceType") Integer serviceType, @Param("waybillId") Long id); } diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseWaybillMapper.xml b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseWaybillMapper.xml index 6e9f7785a..a7cd85678 100644 --- a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseWaybillMapper.xml +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseWaybillMapper.xml @@ -1286,4 +1286,8 @@ update logpm_warehouse_waybill set consignee_id = null where id = #{waybillId} </update> + <update id="updateWaybillTypeService" > + update logpm_warehouse_waybill set service_type = #{serviceType} where id = #{waybillId} + </update> + </mapper> diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/IWarehouseWaybillService.java b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/IWarehouseWaybillService.java index 04e2574a1..d741deee4 100644 --- a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/IWarehouseWaybillService.java +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/IWarehouseWaybillService.java @@ -95,4 +95,6 @@ public interface IWarehouseWaybillService extends BaseService<WarehouseWaybillEn void updateWaybillCondigneeIdToNull(Long waybillId); List<WarehouseWaybillEntity> findWaybillVOByOrderCode(String orderCode); + + R updateWaybillTypeService(WarehouseWaybillDTO waybillDTO); } diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseTrayTypeServiceImpl.java b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseTrayTypeServiceImpl.java index 3ad53c5f7..146c767eb 100644 --- a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseTrayTypeServiceImpl.java +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseTrayTypeServiceImpl.java @@ -62,6 +62,9 @@ import org.springblade.core.tool.utils.StringUtil; import org.springblade.system.cache.DictBizCache; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; +import org.springframework.core.io.ClassPathResource; +import org.springframework.data.redis.core.script.DefaultRedisScript; +import org.springframework.scripting.support.ResourceScriptSource; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -1060,6 +1063,13 @@ public class WarehouseTrayTypeServiceImpl extends BaseServiceImpl<WarehouseTrayT @Override public R orderScanOrderPackageCodeSyncJd(Long trayId,String trayType, String trayCode,String trayName, String orderPackageCode, Long warehouseId) { +// String key = "orderScanOrderPackageCodeSyncJd:"+trayCode; +// Boolean exists = redis.exists(key); +// if(exists){ +// log.warn("#########orderScanOrderPackageCodeSyncJd: 托盘正在被操作 trayCode={} warehouseId={}", trayCode, warehouseId); +// return R.fail(4001, "托盘信息正在更新,请重试"); +// } +// redis.setEx(key,1,1L); QueryWrapper<WarehouseTrayGoodsEntity> qw = new QueryWrapper<>(); qw.eq("association_value", orderPackageCode); @@ -1762,9 +1772,19 @@ public class WarehouseTrayTypeServiceImpl extends BaseServiceImpl<WarehouseTrayT log.info("#########saveTrayType: 存入打托方式 trayType={},trayCode={}", trayType, trayCode); String key = "saveTrayTypeNew:"+trayCode; + String value = "1"; + Long expireTime = 5L; + + DefaultRedisScript<Long> redisScript = new DefaultRedisScript<>(); + redisScript.setScriptSource(new ResourceScriptSource(new ClassPathResource("luascript/resubmit.lua"))); + redisScript.setResultType(Long.class); + + List<String> keys = Collections.singletonList(key); + List<String> args = Arrays.asList(value, String.valueOf(expireTime)); + + Long result = redis.getRedisTemplate().execute(redisScript, keys, args); - Boolean exists = redis.exists(key); - if(exists){ + if (result == 1) { log.warn("#########orderScanOrderPackageCode: 托盘正在保存打托方式 trayCode={} warehouseId={}", trayCode, warehouseId); throw new CustomerException(405, "托盘信息正在更新,请重试"); } diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseWaybillServiceImpl.java b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseWaybillServiceImpl.java index 1c6da9a3c..ba9010796 100644 --- a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseWaybillServiceImpl.java +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseWaybillServiceImpl.java @@ -1234,4 +1234,26 @@ public class WarehouseWaybillServiceImpl extends BaseServiceImpl<WarehouseWaybil public List<WarehouseWaybillEntity> findWaybillVOByOrderCode(String orderCode) { return baseMapper.findWaybillVOByOrderCode(orderCode); } + + @Override + public R updateWaybillTypeService(WarehouseWaybillDTO waybillDTO) { + Long id = waybillDTO.getId(); + Integer serviceType = waybillDTO.getServiceType(); + + WarehouseWaybillEntity warehouseWaybillEntity = baseMapper.selectById(id); + if(Objects.isNull(warehouseWaybillEntity)){ + log.warn("###########updateWaybillTypeService: 运单信息为空"); + return R.fail(405,"运单信息为空"); + } + + Integer checkStatus = warehouseWaybillEntity.getCheckStatus(); + if(checkStatus.equals(1)){ + log.warn("###########updateWaybillTypeService: 运单已审核"); + return R.fail(405,"运单已审核"); + } + + baseMapper.updateWaybillTypeService(serviceType,id); + + return R.success("修改成功"); + } } diff --git a/blade-service/logpm-warehouse/src/main/resources/luascript/resubmit.lua b/blade-service/logpm-warehouse/src/main/resources/luascript/resubmit.lua new file mode 100644 index 000000000..990a385f7 --- /dev/null +++ b/blade-service/logpm-warehouse/src/main/resources/luascript/resubmit.lua @@ -0,0 +1,12 @@ +local key = KEYS[1] +local value = ARGV[1] +local expireTime = tonumber(ARGV[2]) + +local exists = redis.call("EXISTS", key) + +if exists == 1 then + return 1 +end + +redis.call("SETEX", key, expireTime, value) +return 0 From ecca5474b7aec32b3878b060365ee9a6e49a8d41 Mon Sep 17 00:00:00 2001 From: zhaoqiaobo <583671871@qq.com> Date: Fri, 3 Jan 2025 23:21:15 +0800 Subject: [PATCH 18/19] =?UTF-8?q?feat(all):=20=E6=88=91=E4=B9=90=E5=B7=A5?= =?UTF-8?q?=E5=8E=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1 增加我乐数据回传机制 --- .../com/logpm/factorydata/olo/mapper/FactoryNodeOrderMapper.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mapper/FactoryNodeOrderMapper.xml b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mapper/FactoryNodeOrderMapper.xml index 82c6a7d8d..a73724709 100644 --- a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mapper/FactoryNodeOrderMapper.xml +++ b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mapper/FactoryNodeOrderMapper.xml @@ -28,7 +28,7 @@ select * from olo_delivery_note where - (flag is null or flag = 'A') + (flag is null or flag = 'A' or flag = '') and shipment_type_desc != '快递' and shipment_type_desc != '包车' and shipment_no = #{shipmentCode} From 75987d364b3e1d9cc827cb114fe4e8da852987c6 Mon Sep 17 00:00:00 2001 From: zhenghaoyu <zhenghaoyu@superbgrace.com> Date: Sat, 4 Jan 2025 23:07:47 +0800 Subject: [PATCH 19/19] =?UTF-8?q?1.=E6=97=B6=E6=95=88=E6=8A=A5=E8=A1=A8bug?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=202.=E5=AE=A1=E6=A0=B8=E8=BF=90=E5=8D=95?= =?UTF-8?q?=E9=80=BB=E8=BE=91=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ReportIncomingController.java | 20 +++++++++---------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/blade-service/logpm-report/src/main/java/com/logpm/report/controller/ReportIncomingController.java b/blade-service/logpm-report/src/main/java/com/logpm/report/controller/ReportIncomingController.java index 296e4ec4d..8aa69a7c0 100644 --- a/blade-service/logpm-report/src/main/java/com/logpm/report/controller/ReportIncomingController.java +++ b/blade-service/logpm-report/src/main/java/com/logpm/report/controller/ReportIncomingController.java @@ -8,9 +8,7 @@ import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springblade.core.boot.ctrl.BladeController; import org.springblade.core.tool.api.R; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; @@ -22,32 +20,32 @@ public class ReportIncomingController extends BladeController { private final IReportIncomingService reportIncomingService; - @GetMapping("/deptIncomingPage") + @PostMapping("/deptIncomingPage") @ApiOperationSupport(order = 1) @ApiOperation(value = "营业部收入报表", notes = "营业部收入报表") - public R deptIncomingPage(ReportIncomingDTO reportIncomingDTO) { + public R deptIncomingPage(@RequestBody ReportIncomingDTO reportIncomingDTO) { return reportIncomingService.deptIncomingPage(reportIncomingDTO); } - @GetMapping("/deptIncomingExport") + @PostMapping("/deptIncomingExport") @ApiOperationSupport(order = 1) @ApiOperation(value = "营业部收入报表导出", notes = "营业部收入报表导出") - public void deptIncomingExport(ReportIncomingDTO reportIncomingDTO, HttpServletResponse response) { + public void deptIncomingExport(@RequestBody ReportIncomingDTO reportIncomingDTO, HttpServletResponse response) { reportIncomingService.deptIncomingExport(reportIncomingDTO,response); } - @GetMapping("/consigineeIncomingPage") + @PostMapping("/consigineeIncomingPage") @ApiOperationSupport(order = 1) @ApiOperation(value = "收货单位收入报表", notes = "收货单位收入报表") - public R consigineeIncomingPage(ReportIncomingDTO reportIncomingDTO) { + public R consigineeIncomingPage(@RequestBody ReportIncomingDTO reportIncomingDTO) { return reportIncomingService.consigineeIncomingPage(reportIncomingDTO); } - @GetMapping("/consigineeIncomingExport") + @PostMapping("/consigineeIncomingExport") @ApiOperationSupport(order = 1) @ApiOperation(value = "收货单位收入报表导出", notes = "收货单位收入报表导出") - public void consigineeIncomingExport(ReportIncomingDTO reportIncomingDTO, HttpServletResponse response) { + public void consigineeIncomingExport(@RequestBody ReportIncomingDTO reportIncomingDTO, HttpServletResponse response) { reportIncomingService.consigineeIncomingExport(reportIncomingDTO,response); }