Browse Source

fix:本地代码修改

dist.1.3.0
pref_mail@163.com 10 months ago
parent
commit
a31bd6cd59
  1. 11
      blade-biz-common/src/main/java/org/springblade/common/constant/RabbitConstant.java
  2. 2
      blade-biz-common/src/main/java/org/springblade/common/wrapper/CustomHttpServletRequestWrapper.java
  3. 7
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistrilbutionBillLadingClient.java
  4. 22
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/config/RabbitMqConfiguration.java
  5. 5
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistrilbutionBillLadingClient.java
  6. 4
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionSignforMapper.xml
  7. 7
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillLadingMapper.java
  8. 56
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillLadingMapper.xml
  9. 25
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/receiver/ClerkCheckPushBillDataQueueHandler.java
  10. 6
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistrilbutionBillLadingService.java
  11. 8
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java
  12. 144
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java
  13. 11
      blade-service/logpm-factory/src/main/java/com/logpm/factory/interceptor/LocalServerLoginAccountsInterceptor.java
  14. 35
      blade-service/logpm-patch/src/main/java/com/logpm/patch/jobhandle/DistributionDatarepair.java
  15. 2
      blade-service/logpm-patch/src/main/java/com/logpm/patch/mapper/WarehouseMappingDataMapper.java
  16. 16
      blade-service/logpm-patch/src/main/java/com/logpm/patch/mapper/WarehouseMappingDataMapper.xml
  17. 100
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/config/interceptor/LocalServerLoginAccountsInterceptor.java

11
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;

2
blade-service/logpm-factory/src/main/java/com/logpm/factory/wrapper/CustomHttpServletRequestWrapper.java → 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;

7
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<DistrilbutionBillLadingEntity> top(@RequestParam("current") Integer current, @RequestParam("size") Integer size);
/**
* 推送老系统数据
* @param id
* @return
*/
@GetMapping(TOP+"/clerkBillCheckPushData")
Boolean clerkBillCheckPushData(@RequestParam("id")Long id);
}

22
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<String, Object> 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();
}
}

5
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);
}
}

4
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,

7
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillLadingMapper.java

@ -182,6 +182,13 @@ public interface DistrilbutionBillLadingMapper extends BaseMapper<DistrilbutionB
*/
List<SignPushDataUnitDTO> selectPushOldPackageSigning(@Param("id")Long id);
/**
* 查询自提库存品签收信息
* @param billId
* @return
*/
List<SignPushDataUnitDTO> selectPushOldInventorySigning(@Param("id")Long billId);
// Page<DistrilbutionBillLadingAppVO> getInventoryPage(IPage<Object> page, DistrilbutionBillLadingEntity distrilbutionBillLadingEntity);
}

56
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
<where>
dbl.is_deleted=0
<if test="param.pickupBatch != null and param.pickupBatch != ''">and dbl.pickup_batch like
concat('%',#{param.pickupBatch},'%')
</if>
@ -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
</select>
<select id="selectPushOldInventorySigning" resultType="com.logpm.oldproject.dto.SignPushDataUnitDTO">
SELECT
ldbls.id,
ldbl.warehouse_id,
ldbls.create_user AS distribution_contact_id,
ldbls.bill_lading_id AS distributionId,
ldbl.pickup_batch AS transNo,
IF
( ldsl.source_type = 1,( SELECT waybill_number FROM logpm_distribution_stock_article WHERE order_code = ldsl.incoming_batch AND mall_id = ldsl.market_id ), '' ) AS waybillNo,
IF
(
ldsl.source_type = 1,(
SELECT
order_code
FROM
logpm_distribution_stock_article
WHERE
order_code = ldsl.incoming_batch
AND mall_id = ldsl.market_id
),
IFNULL( ldsl.order_code, '' )) AS orderSelfNum,
ldsld.stock_package_code AS unitNo,
2 AS type,
1 AS isLoading,
1 AS is_out,
5 AS broke_state,
ldbls.create_time AS loadingTime,
ldbls.create_time AS signTime,
ldbls.create_time AS create_time,
ldbls.create_user AS administratorsId,
ldbls.create_time AS operateTime,
ldbls.update_time AS update_time,
ldbls.quantity AS num,
ldbls.quantity AS signNum,
3 AS goods_type
FROM
logpm_distribution_bill_lading_scan AS ldbls
LEFT JOIN logpm_dis_stock_list_detail AS ldsld ON ldbls.bill_lading_id = ldsld.reservation_id AND ldsld.is_deleted = 0
AND ldbls.stock_list_id = ldsld.stock_list_id
LEFT JOIN logpm_distribution_stock_list AS ldsl ON ldsld.stock_list_id = ldsl.id AND ldsl.is_deleted = 0
LEFT JOIN logpm_distrilbution_bill_lading AS ldbl ON ldbls.bill_lading_id = ldbl.id AND ldbl.is_deleted = 0
WHERE
ldbls.bill_lading_id = #{id}
AND ldbls.scan_type = 2
AND ldbls.is_deleted = 0
GROUP BY
ldsld.id
</select>

25
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<SignPushDataContactDTO> customer = distrilbutionBillLadingMapper.selectPushOldCustomer(billId);
if (Func.isNotEmpty(customer)) {

6
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistrilbutionBillLadingService.java

@ -256,4 +256,10 @@ public interface IDistrilbutionBillLadingService extends BaseService<Distrilbuti
*/
R batchSign(DistrilbutionBillLadingDTO distrilbutionBillLading);
/**
* 自提推送老系统
* @param id
* @return
*/
Boolean clerkBillCheckPushData(Long id);
}

8
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java

@ -266,7 +266,9 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
distributionDeliveryList.setWarehouseIdList(collect);
}
}else {
distributionDeliveryList.setWarehouseId(myCurrentWarehouse.getId());
List<Long> ids = new ArrayList<>();
ids.add(myCurrentWarehouse.getId());
distributionDeliveryList.setWarehouseIdList(ids);
}
List<DistributionDeliveryListEntity> distributionDeliveryListEntities = baseMapper.selectDistributionDeliveryListPage(page, distributionDeliveryList);
@ -294,7 +296,9 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
distributionDeliveryList.put("warehouseIds",ids);
}
}else {
distributionDeliveryList.put("warehouseId",myCurrentWarehouse.getId());
List<Long> ids = new ArrayList<>();
ids.add(myCurrentWarehouse.getId());
distributionDeliveryList.put("warehouseIds",ids);
}
List<DistributionDeliveryListExcel> distributionDeliveryListExcels = baseMapper.exportDistributionDeliveryList(distributionDeliveryList);
return distributionDeliveryListExcels;

144
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<Distrilb
@Autowired
private IDistributionBillLadingScanService distributionBillLadingScanService;
@Autowired
private DistrilbutionBillLadingMapper distrilbutionBillLadingMapper;
@Autowired
private IDistrilbutionBillStockService distrilbutionBillStockService;
@Autowired
@ -155,12 +165,18 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
@Autowired
private BladeRedis redis;
@Autowired
private IUserClient userClient;
@Autowired
@Resource
private FactoryDataMessageSender factoryDataMessageSender;
@Resource
private RabbitTemplate rabbitTemplate;
@Autowired
private IOldSignPushClient oldSystemDataPushClient;
@Override
public IPage<DistrilbutionBillLadingVO> selectDistrilbutionBillLadingPage(IPage<DistrilbutionBillLadingVO> page, DistrilbutionBillLadingVO distrilbutionBillLading) {
@ -1259,8 +1275,136 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
return R.success("操作成功");
}
@Override
public Boolean clerkBillCheckPushData(Long billId) {
try {
//得到审核的任务ID
//得到签收对象
DistrilbutionBillLadingEntity billLadingEntity = distrilbutionBillLadingMapper.selectById(billId);
//需要检测文员是否进行复核了
if (org.springblade.core.tool.utils.ObjectUtil.isEmpty(billLadingEntity)) {
log.info(">>>>>>>>>>>> clerkBillCheckPushData billLadingEntity {}", billLadingEntity);
return false;
}
//组合配送信息
SignPushDataDTO delivery = distrilbutionBillLadingMapper.getSignPushDataDTO(billId);
//还需要配送的出库人、配送人、操作人信息
if (Func.isNotEmpty(delivery)) {
R<User> 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<SignPushDataContactDTO> customer = distrilbutionBillLadingMapper.selectPushOldCustomer(billId);
if (Func.isNotEmpty(customer)) {
//查询客户订单
List<SignPushDataUnitDTO> signPushDataUnitDTOS = new ArrayList<>();
//查询包件扫描签收
//查询包件扫描签收
List<SignPushDataUnitDTO> pushOldPackageSigning = distrilbutionBillLadingMapper.selectPushOldPackageSigning(billId);
List<SignPushDataUnitDTO> 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<SignPushDataUnitDTO> pushOldPackageSigning) {
for (SignPushDataUnitDTO signPushDataUnitDTO : pushOldPackageSigning) {
User user = redis.get(RedisKeyConstant.USER_NAME_PHONE_KEY + signPushDataUnitDTO.getAdministratorsId());
log.info("buildNameAndPhone >>> 获取缓存的中的用户信息{}",user);
if (user == null) {
R<User> 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<SignPushDataContactDTO> customer) {
for (SignPushDataContactDTO signPushDataUnitDTO : customer) {
User user = redis.get(RedisKeyConstant.USER_NAME_PHONE_KEY + signPushDataUnitDTO.getSignUserId());
log.info("buildNameAndPhone >>> 获取缓存的中的用户信息{}",user);
if (user == null) {
R<User> 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<DistributionBillLadingScanEntity> handleSignPackage(Map<Integer, List<DistributionParcelListEntity>> packageMap,Long id,Long warehouseId){
String method = "###################DistributionBillLadingServiceImpl.handleSignPackage";

11
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;

35
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<String> pushBillNotification(String params) {
// 得到当前仓库所有的签收任务
List<JSONObject> allSignfor = warehouseMappingDataMapper.findAllSignfor(null);
Integer parmeId = null;
if(StringUtil.isNotBlank(params)){
parmeId = Integer.parseInt(params);
}
List<JSONObject> 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);
}
}

2
blade-service/logpm-patch/src/main/java/com/logpm/patch/mapper/WarehouseMappingDataMapper.java

@ -94,6 +94,8 @@ public interface WarehouseMappingDataMapper {
List<JSONObject> 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<JSONObject> findAllBillSign(@Param("id") Integer id);
}

16
blade-service/logpm-patch/src/main/java/com/logpm/patch/mapper/WarehouseMappingDataMapper.xml

@ -281,6 +281,15 @@
</if>
</select>
<select id="findAllBillSign" resultType="cn.hutool.json.JSONObject">
select bill_id billId,
warehouse_id warehouseId
from clear_bill_singnfor_status_record
where deal_status = 0
<if test="id != null">
and id > #{id}
</if>
</select>
<update id="updateClearSignforStatus" >
@ -290,4 +299,11 @@
and warehouse_id = #{warehouseId}
</update>
<update id="updateClearBillSignforStatus" >
update clear_bill_singnfor_status_record
set deal_status = #{dealStatus}
where singnfor_id = #{singnforId}
and warehouse_id = #{warehouseId}
</update>
</mapper>

100
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<String, Object> 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();
}
}
}
}
Loading…
Cancel
Save