From a31bd6cd59f3e77d7b14ccf0d130e1299a44a542 Mon Sep 17 00:00:00 2001 From: "pref_mail@163.com" Date: Sat, 11 May 2024 09:59:25 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E6=9C=AC=E5=9C=B0=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/constant/RabbitConstant.java | 11 ++ .../CustomHttpServletRequestWrapper.java | 2 +- .../feign/IDistrilbutionBillLadingClient.java | 7 + .../config/RabbitMqConfiguration.java | 22 +++ .../feign/DistrilbutionBillLadingClient.java | 5 + .../mapper/DistributionSignforMapper.xml | 4 +- .../mapper/DistrilbutionBillLadingMapper.java | 7 + .../mapper/DistrilbutionBillLadingMapper.xml | 56 ++++++- .../ClerkCheckPushBillDataQueueHandler.java | 25 +-- .../IDistrilbutionBillLadingService.java | 6 + .../DistributionDeliveryListServiceImpl.java | 8 +- .../DistrilbutionBillLadingServiceImpl.java | 144 ++++++++++++++++++ .../LocalServerLoginAccountsInterceptor.java | 11 +- .../jobhandle/DistributionDatarepair.java | 35 ++--- .../mapper/WarehouseMappingDataMapper.java | 2 + .../mapper/WarehouseMappingDataMapper.xml | 16 ++ .../LocalServerLoginAccountsInterceptor.java | 100 ++++++++++++ 17 files changed, 401 insertions(+), 60 deletions(-) rename {blade-service/logpm-factory/src/main/java/com/logpm/factory => blade-biz-common/src/main/java/org/springblade/common}/wrapper/CustomHttpServletRequestWrapper.java (95%) create mode 100644 blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/config/interceptor/LocalServerLoginAccountsInterceptor.java diff --git a/blade-biz-common/src/main/java/org/springblade/common/constant/RabbitConstant.java b/blade-biz-common/src/main/java/org/springblade/common/constant/RabbitConstant.java index 3f7c7c29f..a7451f406 100644 --- a/blade-biz-common/src/main/java/org/springblade/common/constant/RabbitConstant.java +++ b/blade-biz-common/src/main/java/org/springblade/common/constant/RabbitConstant.java @@ -105,6 +105,17 @@ public interface RabbitConstant { /****************文员复合签收推送老系统队列 end *************************/ + + /****************文员自提复合签收推送老系统队列 start *************************/ + + String BILL_CLERK_CHECK_PUSH_DATA_QUEUE = "bill_clerk_check_push_data_queue" + ModuleNameConstant.DEVAUTH; + String BILL_CLERK_CHECK_PUSH_DATA_EXCHANGE = "bill_clerk_check_push_data_exchange" + ModuleNameConstant.DEVAUTH; + String BILL_CLERK_CHECK_PUSH_DATA_ROUTING = "bill_clerk_check_push_data_routing" + ModuleNameConstant.DEVAUTH; + + + /****************文员自提复合签收推送老系统队列 end *************************/ + + /****************包件状态变化 start*************************************************/ String ORDER_PACKAGE_STATUS_INFO_QUEUE = "order_package_status_info_queue" + ModuleNameConstant.DEVAUTH; diff --git a/blade-service/logpm-factory/src/main/java/com/logpm/factory/wrapper/CustomHttpServletRequestWrapper.java b/blade-biz-common/src/main/java/org/springblade/common/wrapper/CustomHttpServletRequestWrapper.java similarity index 95% rename from blade-service/logpm-factory/src/main/java/com/logpm/factory/wrapper/CustomHttpServletRequestWrapper.java rename to blade-biz-common/src/main/java/org/springblade/common/wrapper/CustomHttpServletRequestWrapper.java index 82b344eab..70548d3fd 100644 --- a/blade-service/logpm-factory/src/main/java/com/logpm/factory/wrapper/CustomHttpServletRequestWrapper.java +++ b/blade-biz-common/src/main/java/org/springblade/common/wrapper/CustomHttpServletRequestWrapper.java @@ -1,4 +1,4 @@ -package com.logpm.factory.wrapper; +package org.springblade.common.wrapper; import org.springframework.http.HttpHeaders; diff --git a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistrilbutionBillLadingClient.java b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistrilbutionBillLadingClient.java index eaaf6609e..56d3039c1 100644 --- a/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistrilbutionBillLadingClient.java +++ b/blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistrilbutionBillLadingClient.java @@ -47,4 +47,11 @@ public interface IDistrilbutionBillLadingClient { @GetMapping(TOP) BladePage top(@RequestParam("current") Integer current, @RequestParam("size") Integer size); + /** + * 推送老系统数据 + * @param id + * @return + */ + @GetMapping(TOP+"/clerkBillCheckPushData") + Boolean clerkBillCheckPushData(@RequestParam("id")Long id); } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/config/RabbitMqConfiguration.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/config/RabbitMqConfiguration.java index 43aa0f74a..e67856a50 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/config/RabbitMqConfiguration.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/config/RabbitMqConfiguration.java @@ -150,4 +150,26 @@ public class RabbitMqConfiguration { + + /** + * 文员签收复合推送老系统队列 + * @return + */ + @Bean + public Queue billClerkCheckPushDataQueue() { + return new Queue(RabbitConstant.BILL_CLERK_CHECK_PUSH_DATA_QUEUE, true); + } + @Bean + public CustomExchange billClerkCheckPushDataExchange() { + Map args = Maps.newHashMap(); + args.put("x-delayed-type", "direct"); + return new CustomExchange(RabbitConstant.BILL_CLERK_CHECK_PUSH_DATA_EXCHANGE, "x-delayed-message", true, false, args); + } + @Bean + public Binding billCclerkCheckPushDataBinding(Queue billClerkCheckPushDataQueue, CustomExchange billClerkCheckPushDataExchange) { + return BindingBuilder.bind(billClerkCheckPushDataQueue).to(billClerkCheckPushDataExchange).with(RabbitConstant.BILL_CLERK_CHECK_PUSH_DATA_ROUTING).noargs(); + } + + + } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistrilbutionBillLadingClient.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistrilbutionBillLadingClient.java index d50ce07f2..9050311b3 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistrilbutionBillLadingClient.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistrilbutionBillLadingClient.java @@ -50,4 +50,9 @@ public class DistrilbutionBillLadingClient implements IDistrilbutionBillLadingCl return BladePage.of(page); } + @Override + public Boolean clerkBillCheckPushData(Long id) { + return distrilbutionBillLadingService.clerkBillCheckPushData(id); + } + } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionSignforMapper.xml b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionSignforMapper.xml index 43b6fc729..9ac96eda4 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionSignforMapper.xml +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionSignforMapper.xml @@ -1223,7 +1223,7 @@ lddl.train_number AS trans_no, ldsl.incoming_batch AS waybill_no, ldsl.incoming_batch AS orderSelfNum, - IFNULL(ldpl.order_package_code ,'')AS unitNo, + IFNULL( ldsld.stock_package_code ,'')AS unitNo, ldl.signfor_state AS type, ldl.create_time AS operateTime, ldl.create_user AS administratorsId, @@ -1258,7 +1258,7 @@ lddl.train_number AS trans_no, ldsl.incoming_batch AS waybill_no, lddl.order_code AS orderSelfNum, - IFNULL(ldpl.order_package_code ,'')AS unitNo, + IFNULL(ldsld.stock_package_code ,'')AS unitNo, ldl.signfor_state AS type, ldl.signing_time AS operateTime, ldl.signing_user_id AS administratorsId, diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillLadingMapper.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillLadingMapper.java index cf07dd518..8af1642ff 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillLadingMapper.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillLadingMapper.java @@ -182,6 +182,13 @@ public interface DistrilbutionBillLadingMapper extends BaseMapper selectPushOldPackageSigning(@Param("id")Long id); + /** + * 查询自提库存品签收信息 + * @param billId + * @return + */ + List selectPushOldInventorySigning(@Param("id")Long billId); + // Page getInventoryPage(IPage page, DistrilbutionBillLadingEntity distrilbutionBillLadingEntity); } 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 7d512f679..715b9c9c2 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 @@ -146,6 +146,7 @@ ) AS m ON m.id = k.id ) AS t ON t.id = dbl.id + dbl.is_deleted=0 and dbl.pickup_batch like concat('%',#{param.pickupBatch},'%') @@ -758,7 +759,7 @@ ldbl.pick_up_plate AS car, ldbl.pickup_batch AS transNo, ldbl.create_user AS outId, - ldbl.create_user AS createTime, + ldbl.create_time AS createTime, ldbl.create_user AS administratorsId, ldbl.pick_up_time AS outTime, ldbl.update_time AS reviewTime, @@ -831,7 +832,7 @@ IFNULL(SUM(ldbls.quantity),0) AS actual_plan, IFNULL(SUM(ldbls.quantity),0) AS delivery, IFNULL(SUM(ldbls.quantity),0) AS sign, - (SELECT GROUP_CONCAT(site) FROM logpm_distribution_print WHERE bill_lading_id = ldbl.id GROUP BY bill_lading_id), + (SELECT GROUP_CONCAT(site) FROM logpm_distribution_print WHERE bill_lading_id = ldbl.id GROUP BY bill_lading_id) FROM logpm_distrilbution_bill_lading AS ldbl LEFT JOIN logpm_distribution_bill_lading_scan AS ldbls ON ldbls.bill_lading_id = ldbl.id AND ldbls.is_deleted = 0 @@ -866,9 +867,56 @@ logpm_distribution_bill_lading_scan AS ldbls LEFT JOIN logpm_distrilbution_bill_lading AS ldbl ON ldbls.bill_lading_id = ldbl.id AND ldbl.is_deleted = 0 LEFT JOIN logpm_distribution_stock_article AS ldsa ON ldbls.stock_article_id = ldsa.id AND ldsa.is_deleted = 0 - WHERE - bill_lading_id = #{id} + bill_lading_id = #{id} AND ldbls.is_deleted = 0 AND ldbls.scan_type = 1 + + diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/ClerkCheckPushBillDataQueueHandler.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/ClerkCheckPushBillDataQueueHandler.java index 3b0bce9f9..09f8509b1 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/ClerkCheckPushBillDataQueueHandler.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/ClerkCheckPushBillDataQueueHandler.java @@ -42,7 +42,7 @@ import java.util.stream.Collectors; * @author zhy */ @Slf4j -@RabbitListener(queues = RabbitConstant.CLERK_CHECK_PUSH_DATA_QUEUE) +@RabbitListener(queues = RabbitConstant.BILL_CLERK_CHECK_PUSH_DATA_QUEUE) @Component public class ClerkCheckPushBillDataQueueHandler { @@ -102,20 +102,6 @@ public class ClerkCheckPushBillDataQueueHandler { log.info(">>>>>>>>>>>> clerkCheckPushBillLLadingDataHandler billLadingEntity {}", billLadingEntity); return; } - // 得到配送计划 -// DistributionDeliveryListEntity distributionDeliveryListEntity = distributionDeliveryListMapper.selectById(distributionSignforEntity.getDeliveryId()); -// if (ObjectUtil.isEmpty(distributionDeliveryListEntity)) { -// log.info(">>>>>>>>>>> clerkCheckPushBillLLadingDataHandler distributionDeliveryListEntity {}", distributionDeliveryListEntity); -// return; -// } - - // 得到配送客户 -// DistributionReservationEntity distributionReservationEntity = distributionReservationMapper.selectById(distributionSignforEntity.getReservationId()); -// if (ObjectUtil.isEmpty(distributionReservationEntity)) { -// log.info(">>>>>>>>>>>> clerkCheckPushBillLLadingDataHandler distributionReservationEntity {}", distributionReservationEntity); -// return; -// } - //组合配送信息 SignPushDataDTO delivery = distrilbutionBillLadingMapper.getSignPushDataDTO(billId); @@ -128,15 +114,6 @@ public class ClerkCheckPushBillDataQueueHandler { delivery.setAdministratorsName(user.getName()); delivery.setAdministratorsPhone(user.getPhone()); } -// DistributionStockupEntity distributionStockupEntity = distributionReservationMapper.selectStockup(distributionSignforEntity.getReservationId()); -// if (Func.isNotEmpty(distributionStockupEntity)) { -// if (distributionStockupEntity.getAssignStatus().equals(StockAssignStatusConstant.yizhipai.getValue())) { -// delivery.setOutToId(distributionStockupEntity.getStockupUserId()); -// delivery.setOutToName(distributionStockupEntity.getStockupUser()); -// } -// -// } - //查询客户信息 List customer = distrilbutionBillLadingMapper.selectPushOldCustomer(billId); if (Func.isNotEmpty(customer)) { diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistrilbutionBillLadingService.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistrilbutionBillLadingService.java index f4a6836ec..3ed515cfe 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistrilbutionBillLadingService.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistrilbutionBillLadingService.java @@ -256,4 +256,10 @@ public interface IDistrilbutionBillLadingService extends BaseService ids = new ArrayList<>(); + ids.add(myCurrentWarehouse.getId()); + distributionDeliveryList.setWarehouseIdList(ids); } List distributionDeliveryListEntities = baseMapper.selectDistributionDeliveryListPage(page, distributionDeliveryList); @@ -294,7 +296,9 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl ids = new ArrayList<>(); + ids.add(myCurrentWarehouse.getId()); + distributionDeliveryList.put("warehouseIds",ids); } List distributionDeliveryListExcels = baseMapper.exportDistributionDeliveryList(distributionDeliveryList); return distributionDeliveryListExcels; diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java index c1efc3141..a3f27f09b 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java @@ -49,12 +49,17 @@ import com.logpm.distribution.wrapper.DistributionStockArticleWrapper; import com.logpm.factorydata.enums.BrandEnums; import com.logpm.factorydata.util.FactoryDataMessageSender; import com.logpm.factorydata.vo.NodePushMsg; +import com.logpm.oldproject.dto.SignPushDataContactDTO; +import com.logpm.oldproject.dto.SignPushDataDTO; +import com.logpm.oldproject.dto.SignPushDataUnitDTO; +import com.logpm.oldproject.feign.IOldSignPushClient; import com.logpm.warehouse.feign.IWarehouseUpdownTypeClient; import lombok.extern.log4j.Log4j2; import org.apache.logging.log4j.util.Strings; import org.springblade.common.constant.DictBizConstant; import org.springblade.common.constant.Inventory.InventoryStockUpStatusConstant; import org.springblade.common.constant.RabbitConstant; +import org.springblade.common.constant.RedisKeyConstant; import org.springblade.common.constant.WorkNodeEnums; import org.springblade.common.constant.billLading.BillLadingStatusConstant; import org.springblade.common.constant.common.IsOrNoConstant; @@ -79,6 +84,8 @@ import org.springblade.core.tool.utils.BeanUtil; import org.springblade.core.tool.utils.Func; import org.springblade.core.tool.utils.StringUtil; import org.springblade.system.cache.DictBizCache; +import org.springblade.system.entity.User; +import org.springblade.system.feign.IUserClient; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -120,6 +127,9 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl selectDistrilbutionBillLadingPage(IPage page, DistrilbutionBillLadingVO distrilbutionBillLading) { @@ -1259,8 +1275,136 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl>>>>>>>>>>> clerkBillCheckPushData billLadingEntity {}", billLadingEntity); + return false; + } + + //组合配送信息 + SignPushDataDTO delivery = distrilbutionBillLadingMapper.getSignPushDataDTO(billId); + + //还需要配送的出库人、配送人、操作人信息 + if (Func.isNotEmpty(delivery)) { + R userR = userClient.userInfoById(delivery.getAdministratorsId()); + if (Func.isNotEmpty(userR)) { + User user = userR.getData(); + delivery.setAdministratorsName(user.getName()); + delivery.setAdministratorsPhone(user.getPhone()); + delivery.setOutPhone(user.getPhone()); + delivery.setOutId(user.getId()); + delivery.setOutName(user.getName()); + } + //查询客户信息 + List customer = distrilbutionBillLadingMapper.selectPushOldCustomer(billId); + if (Func.isNotEmpty(customer)) { + //查询客户订单 + List signPushDataUnitDTOS = new ArrayList<>(); + //查询包件扫描签收 + //查询包件扫描签收 + List pushOldPackageSigning = distrilbutionBillLadingMapper.selectPushOldPackageSigning(billId); + List pushOldInventorySigning = distrilbutionBillLadingMapper.selectPushOldInventorySigning(billId); + if (Func.isNotEmpty(pushOldPackageSigning)) { + buildNameAndPhone(pushOldPackageSigning); + signPushDataUnitDTOS.addAll(pushOldPackageSigning); + } + if (Func.isNotEmpty(pushOldInventorySigning)) { + buildNameAndPhone(pushOldPackageSigning); + signPushDataUnitDTOS.addAll(pushOldPackageSigning); + } + buildClientNameAndPhone(customer); + customer.get(0).setSignPushDataUnitDTOs(signPushDataUnitDTOS); + //完成客户信息添加 + delivery.setSignPushDataContactDTOs(customer); + + } + } + + Boolean b = oldSystemDataPushClient.pushOldSystemSignInfo(delivery); + return b; + } catch (Exception e) { + log.error(">>>>> 推送老系统签收信息报错", e); + return false; + } + } + /** + * 构建名称和电话号码 + * + * @param pushOldPackageSigning + */ + private void buildNameAndPhone(List pushOldPackageSigning) { + for (SignPushDataUnitDTO signPushDataUnitDTO : pushOldPackageSigning) { + User user = redis.get(RedisKeyConstant.USER_NAME_PHONE_KEY + signPushDataUnitDTO.getAdministratorsId()); + log.info("buildNameAndPhone >>> 获取缓存的中的用户信息{}",user); + if (user == null) { + R userT = userClient.userInfoById(signPushDataUnitDTO.getAdministratorsId()); + if (userT.isSuccess()) { + user = userT.getData(); + redis.setEx(RedisKeyConstant.USER_NAME_PHONE_KEY + signPushDataUnitDTO.getAdministratorsId(), user, 3600L); + } + } + if (ObjectUtils.isNotNull(user)) { + assert user != null; + signPushDataUnitDTO.setAdministratorsName(user.getName()); + if (ObjectUtils.isNotEmpty(user.getPhone())){ + signPushDataUnitDTO.setAdministratorsPhone(user.getPhone()); + }else { + if (ObjectUtils.isNotEmpty(user.getAccount())){ + signPushDataUnitDTO.setAdministratorsPhone(user.getAccount()); + }else { + log.info("用户无电话号码且账号信息为空>>用户名称:{}",user.getName()); + } + } + } + + } + } + + /** + * 构建名称和电话号码 + * + * @param customer + */ + private void buildClientNameAndPhone(List customer) { + for (SignPushDataContactDTO signPushDataUnitDTO : customer) { + User user = redis.get(RedisKeyConstant.USER_NAME_PHONE_KEY + signPushDataUnitDTO.getSignUserId()); + log.info("buildNameAndPhone >>> 获取缓存的中的用户信息{}",user); + if (user == null) { + R userT = userClient.userInfoById(signPushDataUnitDTO.getSignUserId()); + if (userT.isSuccess()) { + user = userT.getData(); + redis.setEx(RedisKeyConstant.USER_NAME_PHONE_KEY + signPushDataUnitDTO.getSignUserId(), user, 3600L); + } + } + if (ObjectUtils.isNotNull(user)) { + assert user != null; + signPushDataUnitDTO.setSignUserName(user.getName()); + if (ObjectUtils.isNotEmpty(user.getPhone())){ + signPushDataUnitDTO.setSignUserPhone(user.getPhone()); + }else { + if (ObjectUtils.isNotEmpty(user.getAccount())){ + signPushDataUnitDTO.setSignUserPhone(user.getAccount()); + }else { + log.info("用户无电话号码且账号信息为空>>用户名称:{}",user.getName()); + } + } + } + + } + } + public List handleSignPackage(Map> packageMap,Long id,Long warehouseId){ String method = "###################DistributionBillLadingServiceImpl.handleSignPackage"; diff --git a/blade-service/logpm-factory/src/main/java/com/logpm/factory/interceptor/LocalServerLoginAccountsInterceptor.java b/blade-service/logpm-factory/src/main/java/com/logpm/factory/interceptor/LocalServerLoginAccountsInterceptor.java index faed9b869..a33a25e80 100644 --- a/blade-service/logpm-factory/src/main/java/com/logpm/factory/interceptor/LocalServerLoginAccountsInterceptor.java +++ b/blade-service/logpm-factory/src/main/java/com/logpm/factory/interceptor/LocalServerLoginAccountsInterceptor.java @@ -1,30 +1,21 @@ package com.logpm.factory.interceptor; -import cn.hutool.core.map.MapUtil; import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpResponse; -import cn.hutool.http.HttpUtil; import com.alibaba.fastjson.JSONObject; -import com.logpm.factory.comfac.service.IFactoryTokenService; -import com.logpm.factory.config.RequestWrapper; -import com.logpm.factory.wrapper.CustomHttpServletRequestWrapper; +import org.springblade.common.wrapper.CustomHttpServletRequestWrapper; import lombok.AllArgsConstructor; import lombok.extern.log4j.Log4j2; import org.springblade.common.cache.CacheNames; import org.springblade.common.constant.LauncherConstant; import org.springblade.common.exception.CustomerException; -import org.springblade.core.launch.constant.AppConstant; import org.springblade.core.redis.cache.BladeRedis; -import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.api.R; -import org.springblade.core.tool.utils.StringUtil; import org.springblade.core.tool.utils.ThreadLocalUtil; import org.springframework.core.env.Environment; import org.springframework.http.HttpHeaders; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; -import org.springframework.web.servlet.HandlerInterceptor; -import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; import javax.servlet.http.HttpServletRequest; diff --git a/blade-service/logpm-patch/src/main/java/com/logpm/patch/jobhandle/DistributionDatarepair.java b/blade-service/logpm-patch/src/main/java/com/logpm/patch/jobhandle/DistributionDatarepair.java index 54bfc89d5..1287f4a71 100644 --- a/blade-service/logpm-patch/src/main/java/com/logpm/patch/jobhandle/DistributionDatarepair.java +++ b/blade-service/logpm-patch/src/main/java/com/logpm/patch/jobhandle/DistributionDatarepair.java @@ -7,6 +7,7 @@ import com.logpm.distribution.entity.DistributionSignforEntity; import com.logpm.distribution.feign.IDistributionDeliveryListClient; import com.logpm.distribution.feign.IDistributionReservationClient; import com.logpm.distribution.feign.IDistributionSignforClient; +import com.logpm.distribution.feign.IDistrilbutionBillLadingClient; import com.logpm.patch.mapper.WarehouseMappingDataMapper; import com.logpm.patch.service.ISyncDistributionParcelListService; import com.logpm.warehouse.feign.IWarehouseUpdownTypeClient; @@ -51,6 +52,8 @@ public class DistributionDatarepair { private final IDistributionSignforClient distributionSignforClient; + private final IDistrilbutionBillLadingClient distrilbutionBillLadingClient; + /** * 预约状态修复 * @@ -206,7 +209,9 @@ public class DistributionDatarepair { return ReturnT.SUCCESS; - } /** + } + + /** * 推送自提签收老系统系统 * @return */ @@ -214,25 +219,21 @@ public class DistributionDatarepair { public ReturnT pushBillNotification(String params) { // 得到当前仓库所有的签收任务 - - List allSignfor = warehouseMappingDataMapper.findAllSignfor(null); + Integer parmeId = null; + if(StringUtil.isNotBlank(params)){ + parmeId = Integer.parseInt(params); + } + List allSignfor = warehouseMappingDataMapper.findAllBillSign(parmeId); for (JSONObject entries : allSignfor) { - Long id = entries.getLong("singnforId"); - DistributionSignforEntity distributionSignforEntity = new DistributionSignforEntity(); - distributionSignforEntity.setId(id); - Map mapState = new HashMap(); - mapState.put("messageId", CommonUtil.getUUID()); - mapState.put("messageData", distributionSignforEntity); - mapState.put("createTime", System.currentTimeMillis()); - - try { - log.info(">>>>>>>>>>>>>>>>>>> 推送老系统 的签收数据 {} ", mapState); - rabbitTemplate.convertAndSend(RabbitConstant.CLERK_CHECK_PUSH_DATA_EXCHANGE, RabbitConstant.CLERK_CHECK_PUSH_DATA_ROUTING, mapState); - warehouseMappingDataMapper.updateClearSignforStatus(id, entries.getLong("warehouseId"), 1); - } catch (Exception customerException) { - log.error(">>>>>>>>>>>>>>>>>>>>>>>>>> 消息推送失败~ 请联系管理员! {}", customerException.getMessage()); + Long id = entries.getLong("billId"); + Boolean b =distrilbutionBillLadingClient.clerkBillCheckPushData(id); + if(b!=null&&b){ + warehouseMappingDataMapper.updateClearSignforStatus(id, entries.getLong("warehouseId"), 1); + log.info(">>> pushBillNotification 成功 id={}",id); + }else{ + log.error(">>> pushBillNotification 失败 id="+id); } } diff --git a/blade-service/logpm-patch/src/main/java/com/logpm/patch/mapper/WarehouseMappingDataMapper.java b/blade-service/logpm-patch/src/main/java/com/logpm/patch/mapper/WarehouseMappingDataMapper.java index d728ada61..39f8bb8d3 100644 --- a/blade-service/logpm-patch/src/main/java/com/logpm/patch/mapper/WarehouseMappingDataMapper.java +++ b/blade-service/logpm-patch/src/main/java/com/logpm/patch/mapper/WarehouseMappingDataMapper.java @@ -94,6 +94,8 @@ public interface WarehouseMappingDataMapper { List findAllSignfor(@Param("id") Integer id); void updateClearSignforStatus(@Param("singnforId") Long singnforId, @Param("warehouseId") Long warehouseId, @Param("dealStatus") Integer dealStatus); + void updateClearBillSignforStatus(@Param("singnforId") Long singnforId, @Param("warehouseId") Long warehouseId, @Param("dealStatus") Integer dealStatus); + List findAllBillSign(@Param("id") Integer id); } diff --git a/blade-service/logpm-patch/src/main/java/com/logpm/patch/mapper/WarehouseMappingDataMapper.xml b/blade-service/logpm-patch/src/main/java/com/logpm/patch/mapper/WarehouseMappingDataMapper.xml index 1100b8547..093f36b29 100644 --- a/blade-service/logpm-patch/src/main/java/com/logpm/patch/mapper/WarehouseMappingDataMapper.xml +++ b/blade-service/logpm-patch/src/main/java/com/logpm/patch/mapper/WarehouseMappingDataMapper.xml @@ -281,6 +281,15 @@ + @@ -290,4 +299,11 @@ and warehouse_id = #{warehouseId} + + update clear_bill_singnfor_status_record + set deal_status = #{dealStatus} + where singnfor_id = #{singnforId} + and warehouse_id = #{warehouseId} + + diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/config/interceptor/LocalServerLoginAccountsInterceptor.java b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/config/interceptor/LocalServerLoginAccountsInterceptor.java new file mode 100644 index 000000000..223c1c2ec --- /dev/null +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/config/interceptor/LocalServerLoginAccountsInterceptor.java @@ -0,0 +1,100 @@ +package com.logpm.warehouse.config.interceptor; + +import cn.hutool.http.HttpRequest; +import cn.hutool.http.HttpResponse; +import com.alibaba.fastjson.JSONObject; +import lombok.AllArgsConstructor; +import lombok.extern.log4j.Log4j2; +import org.springblade.common.cache.CacheNames; +import org.springblade.common.constant.LauncherConstant; +import org.springblade.common.exception.CustomerException; +import org.springblade.common.wrapper.CustomHttpServletRequestWrapper; +import org.springblade.core.redis.cache.BladeRedis; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.ThreadLocalUtil; +import org.springframework.core.env.Environment; +import org.springframework.http.HttpHeaders; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; +import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.PrintWriter; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +@Log4j2 +@AllArgsConstructor +public class LocalServerLoginAccountsInterceptor extends HandlerInterceptorAdapter { + + private final BladeRedis bladeRedis; + private final Environment environment; + @Override + public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws CustomerException { + + + try { + CustomHttpServletRequestWrapper wrappedRequest = new CustomHttpServletRequestWrapper(request); + String account ="shujutongbu"; + JSONObject data =bladeRedis.get(CacheNames.LOCAL_SERVER_USER+account); + if(Objects.isNull(data)){ + String url = "http://"+ LauncherConstant.loginAddr(Objects.requireNonNull(environment.getActiveProfiles()[0]))+"/blade-auth/oauth/token"; + HttpRequest urlRequest = HttpRequest.post(url); + urlRequest.header("Authorization", "Basic c2FiZXI6c2FiZXJfc2VjcmV0"); + urlRequest.header("Tenant-Id", "627683"); + + Map params = new HashMap<>(); + params.put("grant_type", "local_server"); + params.put("scope", "all"); + params.put("username", account); + params.put("tenantId", "627683"); + HttpResponse execute = urlRequest.form(params).execute(); + String body = execute.body(); + data = JSONObject.parseObject(body); + bladeRedis.setEx(CacheNames.LOCAL_SERVER_USER+account,data,3200L); + } + + // 修改或添加header + + // 发送登录请求 + log.info("##########preHandle: request={}", request); + + wrappedRequest.addHeader("Blade-Auth", "bearer "+data.getString("access_token")); + HttpHeaders httpHeaders = new HttpHeaders(); + httpHeaders.add("Blade-Auth","bearer "+data.get("access_token") ); + httpHeaders.add( "Authorization", "Basic c2FiZXI6c2FiZXJfc2VjcmV0"); + ThreadLocalUtil.put("bladeContext", httpHeaders); + + + // 用包装后的request替换原始request + request = wrappedRequest; + RequestContextHolder.setRequestAttributes(new ServletRequestAttributes(request)); + return true; + } catch (Exception e) { + returnJson(response, JSONObject.toJSONString(R.fail(500, "服务异常,请联系管理员"))); + return false; + } + } + + private void returnJson(HttpServletResponse response, String json) { + PrintWriter writer = null; + response.setCharacterEncoding("UTF-8"); + response.setContentType("application/json"); + try { + writer = response.getWriter(); + writer.print(json); + + } catch (IOException e) { + System.out.println(e.getMessage()); + } finally { + if (writer != null) { + writer.close(); + } + } + } + + +}